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

数据|数据库

最近刚改完一个以前做的MIS,用户的要求真是越来越刁钻了,总算是完事了.又可以操练VB.NET了!!!

在ADO.NET对象模型中, DataAdapter对象的功能真是让人感到欣喜!

DataAdapter对象不仅只是捕获数据的功能,事实上它还可以帮助你将更新后的DataSet以批次的方式再写回后台数据库,而且还相当简单,只要调入Update方法,并传入准备更新的DataSet及DataTable即可。
那么DataAdapter是如何将改动数据写回数据库的呢?
了解数据库处理原理的程序人员可能会感到不可思议,我们在创建DataAdapter时只给予了"Select"SQL命令,未曾在DataAdapter设置"Insert"、"Update"、"Delete"等SQL命令。这个过程是如何实现的呢?
我们知道DataAdapter对象本身就有几个属性:SelectCommand、InsertCommand、UpdateCommand、DeleteCommand。当程序调用到DataAdapter对象的Update方法时,它会根据DataSet内的数据所更改的状况分别应用于InsertCommand、UpdateCommand、DeleteCommand属性的Command命令写回数据库。
问题又来了,如何生成InsertCommand、UpdateCommand、DeleteCommand属性及使其能对应到SelectCommand的命令正确的写回呢?
答案有两个:
1、利用Visual Studio.NET的设计工具生成。如下图示:

2、通过CommandBuilder类。
如果自行编写代码创建DataAdapter对象的话,InsertCommand等属性就不会自动创建,此时可以通过CommandBuilder类的功能来协助你生成InsertCommand等属性。CommandBuilder提供自动生成单一表命令的方法,它将会调解DataSet对后台数据库的记录更新。
如下办法:
'更新第一条记录的"型号"字段为"MF14"
ds.Tables("机械表").Row(0)("型号")="MF14"
'创建CommandBuilder,并传入DataAdapter构造函数参数
Dim comBuilder As New SqlCommandBuilder(da_YB)
'调用DataAdapter的Update方法,写回数据
da_YB.Update(ds_YB.Tables("机械表"))

时间: 2024-10-02 16:18:30

DataAdapter是如何更新数据库数据的?的相关文章

java-使用servlet,jdbc将mysql中数据显示在jsp页面中,且实现直接更新数据库数据

问题描述 使用servlet,jdbc将mysql中数据显示在jsp页面中,且实现直接更新数据库数据 我从网上找了几篇,大多都是在JSP操作的,我想仿照http://blog.csdn.net/kakukeme/article/category/819230 该网址的例子做,但是数据却没有显示出来,所以想问下各位有没完整的可以运行的实例,给我一个. 解决方案 参考一下吧:http://download.csdn.net/detail/qq_19558705/9393750 解决方案二: ?用se

这样写一个按钮语句不能更新数据库数据,问题出在哪里??

问题描述 有个ID为NewsBox的TextBox控件,我内容打进去,然后按个确定按钮,想把内容更新到数据库,但是按钮好像不灵,不知道问题出在哪里,望高手指点,菜鸟学习中:还有个问题,就是da.Command的内容是不是一会儿在调用da.update方法的时候会被自动用起来,那么就是说da.Update(ds,"News")就等于对ds对象的"News"表格执行了da.Command语句?//数据库中用到的表名为NewsprotectedvoidButton1_Cl

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

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

使用 DataAdapter 和 DataSet 更新数据库

数据|数据库 DbDataAdapter调用 Update 方法时,DataAdapter 将分析已作出的更改并执行相应的命令(INSERT .UPDATE 或 DELETE).当 DataAdapter 遇到对 DataRow 的更改时,它将使用 InsertCommand. UpdateCommand 或 DeleteCommand 来处理该更改.这样,您就可以通过在设计时指定命令语法并在可能 时通过使用存储过程来尽量提高 ADO.NET 应用程序的性能.在调用 Update 之前,必须显式

asp.net中,update更新数据库数据出错,求指教啊!

问题描述 protectedvoidupload_Click(objectsender,EventArgse){try{if(fp_upload.PostedFile.FileName!="")//选中图片{stringfilePath=fp_upload.PostedFile.FileName;//完整路径名stringfilename=filePath.Substring(filePath.LastIndexOf("//")+1);//获取图片名称strings

数据库更新--添加数据

一个数据库能否保持信息的正确性.及时性.很大程度上依赖于数据库的更新功能的强弱与实时.数据库的更新包括插入.删除.修改(也称为更新)三种操作.本章将分别讲述如何使用这些操作,以便有效地更新数据库. 在SQL Server 中可以在Enterprise Manager 中查看数据库表的数据时添加数据,但这种方式不能应付数据的大量插入,需要使用INSERT 语句来解决这个问题. 11.1.1 INSERT 语法数据库的信息时常需要改变用户需要添邮荩琁NSERT 语句提供了此功能.INSERT语句通

MS SQL基础教程:数据库更新-添加数据

一个数据库能否保持信息的正确性.及时性.很大程度上依赖于数据库的更新功能的强弱与实时.数据库的更新包括插入.删除.修改(也称为更新)三种操作.本章将分别讲述如何使用这些操作,以便有效地更新数据库. 在SQL Server 中可以在Enterprise Manager 中查看数据库表的数据时添加数据,但这种方式不能应付数据的大量插入,需要使用INSERT 语句来解决这个问题. 11.1.1 INSERT 语法 数据库的信息时常需要改变用户需要添加数据,INSERT 语句提供了此功能.INSERT语

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

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

mysql中如何更新数据库中的时间数据?

问题描述 mysql中如何更新数据库中的时间数据? 解决方案 update 表 set 字段='2011-1-1 0:0:0' where carid = 1 解决方案二: mysql创建存储过程(根据时间字段来更新数据)mysql获取数据库表最后更新时间,update_time 为null 解决方案三: 可以设置数据库自动产生时间,每次插入数据后都会自动产生时间,不用你手动插入