使用 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 用来自动生

成命令的架构信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值