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版
原文地址:http://blog.csdn.net/lqena/article/details/45969437