使用 DataAdapter 和 DataSet 更新数据库

数据|数据库

DbDataAdapter调用 Update 方法时,DataAdapter 将分析已作出的更改并执行相应的命令(INSERT

、UPDATE 或 DELETE)。当 DataAdapter 遇到对 DataRow 的更改时,它将使用 InsertCommand、

UpdateCommand 或 DeleteCommand 来处理该更改。这样,您就可以通过在设计时指定命令语法并在可能

时通过使用存储过程来尽量提高 ADO.NET 应用程序的性能。在调用 Update 之前,必须显式设置这些命

令。如果调用了 Update 但不存在用于特定更新的相应命令(例如,不存在用于已删除行的

DeleteCommand),则将引发异常。
但是如果 DataTable 映射到单个数据库表或从单个数据库表生成,则可以利用 CommandBuilder 对象

自动生成 DataAdapter 的 DeleteCommand、InsertCommand 和 UpdateCommand。为了自动生成命令,必

须设置 SelectCommand 属性,这是最低的要求。SelectCommand 所检索的表架构确定自动生成的 INSERT

、UPDATE 和 DELETE 语句的语法。如果在自动生成插入、更新或删除命令后修改 SelectCommand 的

CommandText,则可能会发生异常。如果已修改的 SelectCommand.CommandText 所包含的架构信息与自动

生成插入、更新或删除命令时所使用的 SelectCommand.CommandText 不一致,则以后对

DataAdapter.Update 方法的调用可能会试图访问 SelectCommand 引用的当前表中已不存在的列,并且会

引发异常。可以通过调用 CommandBuilder 的 RefreshSchema 方法来刷新 CommandBuilder 用来自动生

成命令的架构信息。

时间: 2024-12-21 22:31:51

使用 DataAdapter 和 DataSet 更新数据库的相关文章

使用 DataAdapter 和 DataSet 更新数据库 [C#]

DataAdapter 的 Update 方法可调用来将 DataSet 中的更改解析回数据源.与 Fill 方法类似,Update 方法将 DataSet 的实例和可选的 DataTable 对象或 DataTable 名称用作参数.DataSet 实例是包含已作出的更改的 DataSet,而 DataTable 标识从其中检索更改的表. 当调用 Update 方法时,DataAdapter 将分析已作出的更改并执行相应的命令(INSERT.UPDATE 或 DELETE).当 DataAda

如何使用DataSet更新数据库??

问题描述 我想通过DataSet更新数据库,可是程序执行后没起作用,请高手指点一下,看我哪里弄错了.谢谢我的程序很简单,整个代码如下:(我是想把tab1表里的数据全部覆盖到tab2里,这两个表在两个数据库中)usingSystem;usingSystem.Drawing;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Windows.Forms;usingSystem.Data;usingSystem.Data.Ora

datagridview-下面通过dataset更新数据库,代码哪里有错误,各位大哥,我都纠结一天了(winform)

问题描述 下面通过dataset更新数据库,代码哪里有错误,各位大哥,我都纠结一天了(winform) //更新数据源的方法 private int UpdateByDataSet(DataSet ds, string strTblName, string strconn) { // dgvHead.Columns["pid"].Visible = true; //dgvHead.Columns["fNo"].Visible = true; //dgvHead.Co

求助!!!!dataset更新数据库问题,使用update出现insert语句问题????

问题描述 代码如下:protectedvoidupdata(){OleDbCommandBuilderbuilder=newOleDbCommandBuilder(da);da.InsertCommand=builder.GetInsertCommand();da.UpdateCommand=builder.GetUpdateCommand();da.DeleteCommand=builder.GetDeleteCommand();da.Update(ds,"comment");ds.

DataAdapter是如何更新数据库数据的?

数据|数据库 最近刚改完一个以前做的MIS,用户的要求真是越来越刁钻了,总算是完事了.又可以操练VB.NET了!!! 在ADO.NET对象模型中, DataAdapter对象的功能真是让人感到欣喜! DataAdapter对象不仅只是捕获数据的功能,事实上它还可以帮助你将更新后的DataSet以批次的方式再写回后台数据库,而且还相当简单,只要调入Update方法,并传入准备更新的DataSet及DataTable即可. 那么DataAdapter是如何将改动数据写回数据库的呢? 了解数据库处理原

dataset-数据库更新后,调用DataAdapter,DataSet和DataGridView显示数据库

问题描述 数据库更新后,调用DataAdapter,DataSet和DataGridView显示数据库 public void ComonDataView_order_info() { try { DBConnect(); //连接数据库成功后的操作 //创建DataAdapter对象 SqlDataAdapter order_info_da = new SqlDataAdapter("select * from 订单详情", sqlCon); //创建数据集(也可以直接利用.NET的

dataset更新到数据库-C#中在Dataset中删除几行后无法更新到数据库中

问题描述 C#中在Dataset中删除几行后无法更新到数据库中 foreach (DataRow row in set.Tables["test"].Rows) { if (row[0].ToString() == textBox3.Text) { row.Delete(); } } set.AcceptChanges(); foreach (DataRow row in set.Tables["test"].Rows) { MessageBox.Show(row[

C#dataset更新回数据库

问题描述 C#dataset更新回数据库 我在web.config中配置好节点了,绑定前台grid.datasoure之后,修改数据,dataset中的数据也被修改了,我的连接数据库using了一下,我的更新函数是这样写的 public void update() { if (Map.Tables["allData"].GetChanges() != null) { adapter_Map.SelectCommand.CommandText = "select * from

DataSet.AcceptChanges()后 SqlDataAdapter.Update(DataSet)时数据无法更新数据库 希望路过高人指点 谢谢了

问题描述 DataSet.AcceptChanges()后SqlDataAdapter.Update(DataSet)时数据无法更新数据库希望路过高人指点谢谢了 解决方案 解决方案二:自己顶解决方案三:有没异常出现?解决方案四:或是DataSet.HasChanges=false?解决方案五:没有任何异常解决方案六:我是你下面的并发冲突的贴,还没解决,头痛.DataSet.AcceptChanges()好像放在update的后面.解决方案七:放在update后面就起不到作用了我是GridView