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

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

xjtudll4年前 (2022-04-05)技术心得4430

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 生成” 的相关文章

用visualbox中的android系统替换android sdk自带的模拟器

用visualbox中的android系统替换android sdk自带的模拟器

如何在visualbox中安装android X86,此处不表。 修改虚拟机设置。 关闭运行的虚拟机,选中“设置----网络”,将连接方式设置为“host-only adapter”;在“高级--控制芯片”中选择“P...

Proteus7.6SP4汉化补丁

不得不说国内牛人还是相当多的。尤其是sexywp大牛,看他Proteus破解的相当好。下面这个Proteus 7.6 SP4汉化补丁就是由他修改的。下载地址:http://ishare.iask.sina.com.cn/f/6733828.html介绍:用7.5的汉化修改而来,先和谐,再用汉化补丁覆...

金蝶K3 SQL报表更改子系统(路径)

金蝶K3 SQL报表更改子系统(路径)

金蝶K3 SQL路径是存储在 ICClassSQLReport 1、K3 BOS集成开发工具里 打开你SQL报表准备放入的子系统 比如,要放到【生产任务管理】里 从里面随便找个报表的名称,例如:拖期生产任务单 2、查询想要转移子系统的报表和第一步找的报表名称 我这里想转移【车间在制品存量】 sel...

OKI单片机——ML610Q4XX 定时器

OKI单片机——ML610Q4XX 定时器

1.8位定时器 void Time0_8Bit_Init(Clock_Timer_TypeDef TClock,uint8 TData) { DTM0 = 1;//初始化寄存器 DTM0 = 0; //Enable operating Timer 0 (initial value) TM0D =...

SQL累减语句

https://bbs.csdn.net/topics/70362619 表一 Item Qty A 10 A 12 A 14 B 13 B 60 C 30 C 40 C 10 表二 Item Qty A...

图腾柱(Totem Pole)输出电路

图腾柱(Totem Pole)输出电路

由于此结构画出的电路图有点儿像印第安人的图腾柱(图中左下角的照片),所以叫图腾柱式输出(也叫图腾式输出)。输出级分别采用一个NPN型晶体管和一个PNP型晶体管。NPN管集电极接正电源(或接地),发射极接下面PNP管的发射极,同时输出;PNP管的集电极接地(或负电源)。两管的基极同时接 前级的控制...

发表评论

访客

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