C#增删改查操作Access数据库之四(数据库的更改)
来源:互联网 发布:免费外贸客户搜索软件 编辑:程序博客网 时间:2024/06/05 08:15
功能:直接在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.数据更新操作
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语句更新数据库的问题就是,只能一个数据一个数据的更新,每更改一个数就需要单击更新按钮,这样也是非常麻烦的。
不知道有没有大神能够解决这个问题,欢迎一块学习讨论~~
阅读全文
1 0
- C#增删改查操作Access数据库之四(数据库的更改)
- c#操作access数据库--增删改查
- C#增删改查操作Access数据库之二(数据库的增加)
- C#增删改查操作Access数据库之三(数据库的删除)
- C#增删改查操作Access数据库之五(数据库的查找)
- C#对Access数据库的增删改查
- C# Access数据库增删查改的简单方法
- C# Access数据库增删查改的简单方法
- C# Access数据库增删查改的简单方法
- c# 数据库增删改查操作
- 数据库操作之增删改查
- c#的数据库的增删改查
- 自学java之hibernate操作数据库的增删查改
- JAVA之操作数据库增删改查-JDBC的使用
- 数据库的增删改查操作
- 数据库的一些增删改查操作
- 数据库的简单操作----增删改查
- 数据库操作增删改查
- servlet3异步原理与实践
- 用户要机器学习,所以OpenStack和NVIDIA在一起了
- 在基于 create-react-app 的React项目中进行代码分片、按需加载(code splitting)/ 免webpack配置
- 匠牛社区AM5728复位按键实例
- MQTT-SN协议乱翻之消息格式
- C#增删改查操作Access数据库之四(数据库的更改)
- BEGIN-1 A+B问题
- 匠牛社区AM5728 Micro SD卡测试
- Linux开机自动挂载存储的两种方式
- 一文看懂IT管理的美与未来
- 直播预告:基于强化学习的关系抽取和文本分类 | PhD Talk #18
- 直播预告:基于强化学习的关系抽取和文本分类 | PhD Talk #18
- java配置环境
- NLP多任务学习:一种层次增长的神经网络结构 | PaperDaily #16