C#增删改查操作Access数据库之四(数据库的更改)
2017-11-21 14:40
531 查看
功能:直接在datagirdview中更改数据,点击更新后将更改后的数据更新到数据库中
另外的:在我刚开始想要实现更新功能的时候,我会觉得更新和添加是一样的操作,于是上网查找了一下他们的区别。
You cannot UPDATE a row that's not in a table.
You cannot INSERT a row that's already in a table.
这两句话很具体地说明了区别。
更新是在已存在的数据基础上更新,而添加是添加数据库中不存在的内容。
代码引用自http://blog.csdn.net/gradonday/article/details/38238555
1.数据更新操作
2.创建DataSet方法
public DataTable CreateDatatble(string strsql, OleDbConnection conn)
{
conn.Open();
OleDbDataAdapter adapter = new OleDbDataAdapter(strsql, conn);
DataTable dtSelect = new DataTable();
int rnt = adapter.Fill(dtSelect); //fill dtSelect
conn.Close();
return dtSelect;
}
3.更新按钮中的操作
这样更新数据有一个问题,就是相对于利用sql语句来更新,它更费内存一些。可能数据量达到某种程度的时候,执行起来会非常慢,而且如果在更新中数据有丢失情况那么更新后,原来数据库也没有被保存了。利用sql语句更新数据库的问题就是,只能一个数据一个数据的更新,每更改一个数就需要单击更新按钮,这样也是非常麻烦的。
不知道有没有大神能够解决这个问题,欢迎一块学习讨论~~
另外的:在我刚开始想要实现更新功能的时候,我会觉得更新和添加是一样的操作,于是上网查找了一下他们的区别。
You cannot UPDATE a row that's not in a table.
You cannot INSERT a row that's already in a table.
这两句话很具体地说明了区别。
更新是在已存在的数据基础上更新,而添加是添加数据库中不存在的内容。
代码引用自http://blog.csdn.net/gradonday/article/details/38238555
1.数据更新操作
public bool DataUpdate(DataGridView dataGridView1,OleDbConnection conn) { DialogResult dr = MessageBox.Show("确定要更改吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (dr == DialogResult.Yes) { string sqlUpdate = "select * from Student"; OleDbDataAdapter adapter = new OleDbDataAdapter(sqlUpdate, conn); DataTable dtUpdate = new DataTable(); dtUpdate = CreateDatatble(sqlUpdate, conn); //Create a Datatable dtUpdate.Rows.Clear(); DataTable dtShow = new DataTable(); dtShow = (DataTable)dataGridView1.DataSource; for (int i = 0; i < dtShow.Rows.Count; i++) { dtUpdate.ImportRow(dtShow.Rows[i]); //copy data from datagridview to dtUpdate } try { conn.Open(); OleDbCommandBuilder cmdBuilder = new OleDbCommandBuilder(adapter); adapter.Update(dtUpdate); //update database conn.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); return false; } dtUpdate.AcceptChanges(); //submit update } return true; }这里相当于引入了两个DataTable变量,一个用于保存当前datagirview中的所有数据,另一个用于更新数据库中的数据
2.创建DataSet方法
public DataTable CreateDatatble(string strsql, OleDbConnection conn)
{
conn.Open();
OleDbDataAdapter adapter = new OleDbDataAdapter(strsql, conn);
DataTable dtSelect = new DataTable();
int rnt = adapter.Fill(dtSelect); //fill dtSelect
conn.Close();
return dtSelect;
}
3.更新按钮中的操作
private void btn_Update_Click(object sender, EventArgs e) { //OleDbConnection conn = opera.GetConnection(); try { bool UpdateResult = opera.DataUpdate(dataGridView1, conn); if (UpdateResult) { DataDisplay(); MessageBox.Show("Update successfully!"); } } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
这样更新数据有一个问题,就是相对于利用sql语句来更新,它更费内存一些。可能数据量达到某种程度的时候,执行起来会非常慢,而且如果在更新中数据有丢失情况那么更新后,原来数据库也没有被保存了。利用sql语句更新数据库的问题就是,只能一个数据一个数据的更新,每更改一个数就需要单击更新按钮,这样也是非常麻烦的。
不知道有没有大神能够解决这个问题,欢迎一块学习讨论~~
相关文章推荐
- C#增删改查操作Access数据库之三(数据库的删除)
- C#通过窗体应用程序操作数据库(增删改查)
- C#在winform中操作数据库,实现数据增删改查
- c# 数据库增删改查操作
- C#2005中使用控件DataGridView实现对数据库增删改查操作
- sqllite (2) - c# .net 使用 sqllite 增删改查操作数据库
- C#通过窗体应用程序操作数据库(增删改查)
- C# ADO.net连接数据库 进行增删改查操作
- C# 连接 SQL Server 2008 基础操作+数据库增删改查
- c#操作access数据库--增删改查
- C#操作Access数据库之一(数据库的连接)
- 【经典】C#常用数据库操作(增删改查)
- C#2005中使用控件DataGridView实现对数据库增删改查操作
- 使用C#对数据库进行增删改查操作(三)
- C#增删改查操作Access数据库之二(数据库的增加)
- C#增删改查操作Access数据库之五(数据库的查找)
- C#操作数据库经典
- C#附加数据库算法及思路,包括附加、还原、备份、分离、压缩、创建、修改等常见操作(修正)
- c#树形控件的访问数据库和增删操作
- Yii2――使用数据库操作汇总(增删查改、事务)