您的当前位置:首页正文

C#Winfrom数据库增删改查实例--DataAdapter版

2023-11-08 来源:帮我找美食网

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data.OleDb;using System.Configuration;namespace TestDbOper2{ public partial class Form1 : Form { static string m_connstr = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString; OleDbConnection m_conn; OleDbCommand m_cmd; OleDbDataAdapter m_da; DataTable m_dt; enum DbState { dsAdd,//增加状态 dsMod,//修改状态 dsDel,//删除状态 dsBro //浏览状态 } DbState m_DbState; public Form1() { InitializeComponent(); m_conn = new OleDbConnection(m_connstr); m_cmd = new OleDbCommand(" SELECT * FROM Users", m_conn); m_da = new OleDbDataAdapter(m_cmd); OleDbCommandBuilder cb = new OleDbCommandBuilder(m_da); m_dt = new DataTable(); dataGridView1.DataSource = m_dt; } private void Form1_Load(object sender, EventArgs e) { dataGridView1.AutoGenerateColumns = false; btnQuery_Click(sender, e); } //查询 private void btnQuery_Click(object sender, EventArgs e) { m_DbState = DbState.dsBro; SetBtnState(); m_cmd.CommandText = "select * from users where username like '%"+textBox2.Text+"%'"; m_dt.Clear(); m_da.Fill(m_dt); m_conn.Close(); } //增加 private void btnAdd_Click(object sender, EventArgs e) { m_DbState = DbState.dsAdd; SetBtnState(); txtUserName.Text = ""; txtUserAge.Text = ""; txtUserSex.Text = ""; } //修改 private void btnMod_Click(object sender, EventArgs e) { if (dataGridView1.CurrentCell.RowIndex >= m_dt.Rows.Count) { return; } m_DbState = DbState.dsMod; SetBtnState(); txtUserName.Text = m_dt.Rows[dataGridView1.CurrentCell.RowIndex]["username"].ToString(); txtUserAge.Text = m_dt.Rows[dataGridView1.CurrentCell.RowIndex]["userage"].ToString(); txtUserSex.Text = m_dt.Rows[dataGridView1.CurrentCell.RowIndex]["usersex"].ToString(); } //删除 private void btnDel_Click(object sender, EventArgs e) { if (MessageBox.Show("确定删除吗?", "提示", MessageBoxButtons.YesNo) == DialogResult.No) { return; } try { m_dt.Rows[dataGridView1.CurrentCell.RowIndex].Delete(); m_da.Update(m_dt.GetChanges()); m_dt.AcceptChanges(); MessageBox.Show("删除成功"); } catch(Exception ex) { MessageBox.Show("删除失败"+ex.Message); } } //双击 private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { btnMod_Click(sender, e); } //保存 private void btnSave_Click(object sender, EventArgs e) { if (m_DbState == DbState.dsMod) { try { DataRow dr= m_dt.Rows[dataGridView1.CurrentCell.RowIndex]; dr.BeginEdit(); dr["username"] = txtUserName.Text; dr["userage"] = txtUserAge.Text; dr["usersex"] = txtUserSex.Text; dr.EndEdit(); m_da.Update(m_dt.GetChanges()); m_dt.AcceptChanges(); MessageBox.Show("保存成功"); } catch (Exception ex) { MessageBox.Show("保存失败 " + ex.Message); } } else { try { DataRow dr = m_dt.NewRow(); dr["username"] = txtUserName.Text; dr["userage"] = txtUserAge.Text; dr["usersex"] = txtUserSex.Text; m_dt.Rows.Add(dr); m_da.Update(m_dt.GetChanges()); m_dt.AcceptChanges(); MessageBox.Show("增加成功"); } catch (Exception ex) { MessageBox.Show("增加失败"+ex.Message); } } m_DbState = DbState.dsBro; SetBtnState(); } private void btnCancel_Click(object sender, EventArgs e) { m_DbState = DbState.dsBro; SetBtnState(); } private void SetBtnState() { btnQuery.Enabled = m_DbState == DbState.dsBro; btnAdd.Enabled = m_DbState == DbState.dsBro; btnMod.Enabled = m_DbState == DbState.dsBro; btnDel.Enabled = m_DbState == DbState.dsBro; btnSave.Enabled = m_DbState != DbState.dsBro; btnCancel.Enabled = m_DbState != DbState.dsBro; } }}

C#Winfrom数据库增删改查实例--DataAdapter版

标签:c# winfrom 增删改查

小编还为您整理了以下内容,可能对您也有帮助:

c# winfrom中,怎样通过datagrideview实现删除,添加,修改数据库?

private void button1_Click(object sender, EventArgs e)

{

string ri = maskedTextBox1.Text;

if (radioButton1.Checked == true)

{

sql = "select * from ******* where ******* like '%" + ri + "%'";

cmd = new SqlCommand(sql, Class1.me_conn);

sdr = cmd.ExecuteReader();

if (!sdr.Read())

{

MessageBox.Show("********");

maskedTextBox1.Clear();

maskedTextBox1.Focus();

}

//sdr.Close();

else

{

sdr.Close();

dataGridView1.Visible = true;

SqlDataAdapter sda = new SqlDataAdapter(sql, Class1.me_conn);

ds = new DataSet();

sda.Fill(ds);

dataGridView1.DataSource = ds.Tables[0];

}

sdr.Close();

}

if (radioButton2.Checked == true)

{

sql = "select * from **** where **** like '%" + ri + "%'";

cmd = new SqlCommand(sql, Class1.me_conn);

sdr = cmd.ExecuteReader();

if (!sdr.Read())

{

MessageBox.Show("**********");

maskedTextBox1.Clear();

maskedTextBox1.Focus();

}

//sdr.Close();

else

{

sdr.Close();

dataGridView1.Visible = true;

SqlDataAdapter sda = new SqlDataAdapter(sql, Class1.me_conn);

ds = new DataSet();

sda.Fill(ds);

dataGridView1.DataSource = ds.Tables[0];

}

sdr.Close();

}

if (radioButton3.Checked == true)

{

sql = "select * from ******* where ******* like '%" + ri + "%'";

cmd = new SqlCommand(sql,Class1.me_conn);

sdr = cmd.ExecuteReader();

if (!sdr.Read())

{

MessageBox.Show("*********");

maskedTextBox1.Clear();

maskedTextBox1.Focus();

}

//sdr.Close();

else

{

sdr.Close();

dataGridView1.Visible = true;

SqlDataAdapter sda = new SqlDataAdapter(sql, Class1.me_conn);

ds = new DataSet();

sda.Fill(ds);

dataGridView1.DataSource = ds.Tables[0];

}

sdr.Close();

}

//sdr.Close();

else

{

sdr.Close();

dataGridView1.Visible = true;

SqlDataAdapter sda = new SqlDataAdapter(sql, Class1.me_conn);

ds = new DataSet();

sda.Fill(ds);

dataGridView1.DataSource = ds.Tables[0];

}

sdr.Close();

}

这是一个单击事件下的带吗!还有其中****的地方为项目相应的词语!

求C# winform中 access连接、读取、添加、删除和修改的通用类 的使用案例。

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace WindowsFormsApplication1

{

using System.Data;

using System.Data.OleDb;

public class AccessHelp

{

// 连接数据源

private OleDbConnection conn = null;

/// <summary>

/// 数据源

/// </summary>

/// <param name="conStr">数据源连接字符串</param>

public OleDbConnection DataBase(string conStr)

{

conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ conStr +";Jet OLEDB:System Database=system.mdw;");

this.Open();

return conn;

}

/// <summary>

/// 根据SQL查询返回DataSet对象,如果没有查询到则返回NULL

/// </summary>

/// <param name="sql">查询语句</param>

/// <returns>DataSet</returns>

public DataSet GetDataSet(string sql)

{

DataSet ds = new DataSet();

try

{

OleDbCommand cmd = new OleDbCommand(sql, conn);

cmd.CommandTimeout = 20;

System.Data.OleDb.OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);

adapter.Fill(ds, "tempTable");

}

catch (Exception e)

{

ds = null;

}

return ds;

}

/// <summary>

/// 根据SQL查询返回DataSet对象,如果没有查询到则返回NULL

/// </summary>

/// <param name="sql">查询语句</param>

/// <param name="sRecord">开始记录数</param>

/// <param name="mRecord">最大记录数</param>

/// <returns>DataSet</returns>

public DataSet GetDataSet(string sql, int sRecord, int mRecord)

{

DataSet ds = new DataSet();

try

{

OleDbCommand cmd = new OleDbCommand(sql, conn);

cmd.CommandTimeout = 20;

System.Data.OleDb.OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);

adapter.Fill(ds, sRecord, mRecord, "tempTable");

}

catch (Exception e)

{

ds = null;

}

return ds;

}

/// <summary>

/// 对数据库的增,删,改的操作

/// </summary>

/// <param name="sql">SQL语句</param>

/// <returns>是否成功</returns>

public bool ExecuteDataBase(string sql)

{

bool succeed = false;

int cnt = 0;

try

{

OleDbCommand cmd = new OleDbCommand(sql, conn);

cmd.CommandTimeout = 20;

if (this.Open())

cnt = cmd.ExecuteNonQuery();

}

catch (Exception e)

{

e.ToString();

}

finally

{

if (cnt > 0)

{

succeed = true;

}

}

return succeed;

}

/// <summary>

/// 获得该SQL查询返回的第一行第一列的值,如果没有查询到则返回NULL

/// </summary>

/// <param name="sql">查询语句</param>

/// <returns>返回的第一行第一列的值</returns>

public string GetScalar(string sql)

{

string str = null;

try

{

OleDbCommand cmd = new OleDbCommand(sql, conn);

if (this.Open())

str = cmd.ExecuteScalar().ToString();

}

catch (Exception e)

{

e.ToString();

}

return str;

}

/// <summary>

/// 获得该SQL查询返回DataTable,如果没有查询到则返回NULL

/// </summary>

/// <param name="sql">查询语句</param>

/// <returns></returns>

public DataTable GetDataTable(string sql)

{

DataTable tb = null;

DataSet ds = this.GetDataSet(sql);

if (ds != null)

{

tb = ds.Tables["tempTable"];

}

return tb;

}

/// <summary>

/// 打开数据库连接.

/// </summary>

private bool Open()

{

bool succeed = false;

try

{

if (conn.State == System.Data.ConnectionState.Closed)

{

conn.Open();

succeed = true;

}

else if (conn.State == System.Data.ConnectionState.Broken)

{

conn.Close();

conn.Open();

succeed = true;

}

else if (conn.State == System.Data.ConnectionState.Open)

{

succeed = true;

}

}

catch (Exception e)

{

e.ToString();

}

return succeed;

}

/// <summary>

/// 关闭数据库连接

/// </summary>

public void Close()

{

if (conn != null)

{

conn.Close();

}

}

/// <summary>

/// 释放数据库连接资源

/// </summary>

public void Dispose()

{

if (conn != null)

{

conn.Dispose();

conn = null;

}

}

}

}

你只要把Access数据库的存在的目录地址,调用DataBase这个方法就行了

仔细看看这个help类,都有中文解释的,和SqlHelper类一样调用,很简单的

项目我先发到你的QQ邮箱,今天加你QQ,可能你不在线吧

你邮箱设置了禁止接收陌生邮件的,我发离线文件给你吧

求C#winform 数据库类(连接和增删改查)和在窗口中的调用代码

C# 中分为三层,在数据访问层中写增删查改的代码和专门连接数据库的一个类写Connection;在窗口中调用的代码一般写在表示层。

C#通过DataGridView对数据库进行增删改查

(1)增加新的数据行

(2)显示选中行数据

(3)修改选中行数据

(1)执行SQL返回受影响的行数的ExecuteNoQuery方法

(2)执行SQL返回查询结果中第一行第一列的值的ExecuteScalar方法

(3)执行SQL返回一个DataTable的ExecuteDataTable方法

(4)执行SQL返回一个SqlDataReader的ExecutedReader方法

Top