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

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

xjtudll2年前 (2022-04-05)技术心得680

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://xjtudll.cn/Exp/640/

标签: SQL
分享给朋友:

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

Allegro测量距离如何同时显示mil和mm双单位

Allegro测量距离如何同时显示mil和mm双单位

点击Setup菜单→User Preferences...(用户参数设置) 打开下面的对话框,选择Display→Element(元素)→show measure_altunits(显示测量所有档位)选项卡选择millimeters。 然后测量后显示的距离效果如下图所示...

苹果电脑备份还原Windows操作系统

苹果电脑备份还原Windows操作系统

苹果电脑可以通过BootCamp安装Windows系统(毕竟,有很多“Just For Windows”和“IE Only”的软件和服务--比如国内的网上银行)。但是,苹果电脑的macOSX操作系统及其下的文件可以通过Time Machine备份、还原,通过BootCamp装的Windows系统及其...

MSP430复位电路

MSP430复位电路

复位电路有啥好讲的?很多人可能都这样认为。简单的阻容复位,相信大伙都知道如何使用。一直以来,我也是这么认为的。后来在利尔达的一款MSP430F449开发板上看到其复位电路,看到电路上多了个1N4148二极管,这个二极管的作用我一度认为是起保护作用的,直到最近在网上看到一个网友的精彩说明,才知道二极管...

利用Doxygen生成CHM文件

利用Doxygen生成CHM文件

准备工作:安装HTML Help Workshop。微软官网有安装包提供。 基本配置就不讲了,与生成Html文件类似。请参考:http://xjtudll.cn/Exp/243/ 下面讲特殊配置。 1、Wizard->Output HTML->prepare for compressed...

在 Windows server 2008 下计划任务无法正常执行bat批处理文件

在 Windows server 2008 下计划任务无法正常执行bat批处理文件

windows server 2008 下计划任务执行批处理,总是提示执行成功, 但是批处理该输出的内容却没有输出, 解决办法: 如图:编辑任务 把批处理文件的起始位置加上如:在d:\aa.bat 那么起始位置就是:d:\  注:路径中不能有引号...

eclipse:android R.java文件丢失或无法更新

eclipse:android R.java文件丢失或无法更新

http://www.cnblogs.com/zdz8207/archive/2012/11/30/eclipse-android-adt-update.html 问题: eclipse编译android工程,发现R.java无法更新 解决办法: 1、先确定SDK没问题,就是说工程设置里用的SDK,...

发表评论

访客

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