时间:2021-07-01 10:21:17 帮助过:1人阅读
插入、更新和删除的排序
在许多情况下,以何种顺序向数据源发送通过 DataSet 作出的更改是相当重要的。
例如,如果已更新现有行的主键值并且添加了具有新主键值的新行,则务必要在处理插入之前处理更新。
可以使用 DataTable 的 Select 方法来返回仅引用具有特定 RowState 的 DataRow 数组。然后可以将返回的 DataRow 数组传递到 DataAdapter 的 Update 方法来处理已修改的行。通过指定要更新的行的子集,可以控制处理插入、更新和删除的顺序。
DataTable table = dataSet.Tables["Customers"]; // First process deletes. adapter.Update(table.Select(null, null, DataViewRowState.Deleted)); // Next process updates. adapter.Update(table.Select(null, null, DataViewRowState.ModifiedCurrent)); // Finally, process inserts. adapter.Update(table.Select(null, null, DataViewRowState.Added));
三、使用sql语句更新
例如:
cmd = new OleDbCommand(string.Format(@"insert into worker(workerid,workername,password,phoneno) values (‘{0}‘,‘{1}‘,‘{2}‘,‘{3}‘) ", textBox1.Text, textBox2.Text, textBox3.Text, textBox4.Text),oc); oc.Open(); try { int i = cmd.ExecuteNonQuery(); } catch (Exception ex) { }
性能的优劣及使用的情形,还未完全明白。
一般的,绑定bindingsource,用datatable绑定bindingsource (实质上绑定的是datatable。defaultview,同时可用到dataview的筛选功能,但是在筛选完后,filter要重置为null,否则出现的一直是经过筛选的数据)
其他:
使用builder 的作用:
OleDbCommandBuilder cb = new OleDbCommandBuilder(da);
这个主要是为了让C#自动为OleDbDataAdapter da生成相对应的DeleteCommand,UpdateCommand!
希望本文所述对大家的C#数据库程序设计有所帮助。
转自http://www.jb51.net/article/54418.htm
C#使用DataSet Datatable更新数据库的三种实现方法
标签: