您的位置:首页 > 数据库

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

2015-05-25 14:41 302 查看
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 增删改查