首页 > 开发 > 综合 > 正文

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

2024-07-21 02:23:14
字体:
来源:转载
供稿:网友
最近刚改完一个以前做的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("机械表"))


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表