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方法