当前位置:首页 > 技术心得 > 正文内容

对于不返回任何键列信息的 selectcommand 不支持 updatecommand 的动态 sql 生成

xjtudll5年前 (2022-04-05)技术心得7470

https://www.cnblogs.com/xuqiang/archive/2010/03/07/1953720.html

大家知道,DataSet保存的数据是位于服务器内存里面的原数据库的“副本”。所以用DataSet更新数据的过程就是先对“副本”进行更新,然后

在将“原本”更新,按照我的理解就是把“原本”覆盖掉。具体到过程,首先是要找到需要更新的行,然后赋新值,最后更新原数据库。

要找到需要修改的行,比较方便的做法就是根据记录中的某个值进行查找,这样比用“列号”“行号”什么的方便多了。要做到这一点,首先就是要

给数据库指定一个主键,然后即可按照主键进行查找。要注意的是这个主键必须要是在程序中指定的,并且这个主键不一定和你数据库原来有的主

键一样。

然后就是最后的更新,当然是用DataAdapter的Update()方法借助CommandBuilder来实现,要注意的是,如果你的数据库一开始没有定义

主键,那进行更新的时候会出错,返回的错误将是“对于不返回任何键列信息的 SelectCommand 不支持 UpdateCommand 的动态 SQL

生成。”这是因为我们用的Update()实际上是通过CommandBuilder动态生成sql语句,然后才进行的数据库操作。

但如果你在一开始创建DataAdapter时的那个sql语句没有包含有主键的列的话,那CommandBuilder将不会发生作用。这一点是必须要牢记的。

扫描二维码推送至手机访问。

版权声明:本文由鸟的天空发布,如需转载请注明出处。

本文链接:http://www.xjtudll.cn/Exp/640/

标签: SQL
分享给朋友:

“对于不返回任何键列信息的 selectcommand 不支持 updatecommand 的动态 sql 生成” 的相关文章

浅析电波表——发射和接收原理

浅析电波表——发射和接收原理

一、发射的基本原理 授时信号的发射部分由原子钟、时间信号处理器、调制器、载波振荡器、激励级、强放级和发射天线组成。其工作原理是:原子钟作为时钟源,产生相对准确和稳定的时频标准,这个频率标准通过系统分频器得到实时的标准时间信息。如:年、月、日、时、分、秒、毫秒、微妙等时间信息,这些时间信息通过时间信息...

SQL Server数据库脱机时间太长(脱机联机)

解决办法:强制脱机语句:ALTER DATABASE <dbname> SET OFFLINE WITH ROLLBACK IMMEDIATE联机语句ALTER DATABASE <dbname> SET ONLINE...

C#获取文件全路径、目录、扩展名、文件名称

class Program     {         static void Main(string[] args)       &nbs...

Android Studio 错误: 非法字符: '\ufeff' 解决方案|错误: 需要class, interface或enum

Android Studio 错误: 非法字符: '\ufeff' 解决方案|错误: 需要class, interface或enum

Eclipse可以智能的把UTF-8+BOM文件转为普通的UTF-8文件,Android Studio还没有这个功能。 当将Eclipse工程转为Android Studio工程,并编译,就可能出现” 非法字符: '\ufeff' “之类的错误。 如下图: 如果遇到此种问题...

Android Studio: This version of the rendering library is more recent than your version of Android Studio

Android Studio: This version of the rendering library is more recent than your version of Android Studio

Android Studio预览xml布局时,提示: This version of the rendering library is more recent than your version of Android Studio. Please update Android Studio 如图所示...

zencart迁移需要修改的地方

移植zencart,搬迁zencart:1.复制文件到新的服务器2.复制数据库3.修改配置文件    1)/includes/configure.php       //修改域名('HTTP_SERVER',&nb...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。