首页 > 数据库 >对于不返回任何键列信息的 selectcommand 不支持 updatecommand 的动态 sql 生成

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

时间:2022-08-18 01:12:08浏览次数:84  
标签:数据库 sql 更新 selectcommand updatecommand CommandBuilder 主键 键列

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

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

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

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

键一样。

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

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

生成。”这是因为我们用的Update()实际上是通过CommandBuilder动态生成sql语句,然后才进行的数据库操作。但如果你在一开始创建

DataAdapter时的那个sql语句没有包含有主键的列的话,那CommandBuilder将不会发生作用。这一点是必须要牢记的。
————————————————
版权声明:本文为CSDN博主「海乐学习」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/gaoxiang19820514/article/details/125912373

标签:数据库,sql,更新,selectcommand,updatecommand,CommandBuilder,主键,键列
From: https://www.cnblogs.com/Pipe-fish/p/16597361.html

相关文章

  • 【2022.8.17】MySQL数据库(4)
    学习内容概要操作表的SQL语句补充表查询关键字selectfromwheregroupbyhavingdistinctorderbylimitregexpSQL语句中也支持写类似......
  • mysql时间相减获取秒数
    anstime_to_sec(timediff(endTime,startTime))timestampdiff(second,startTime,endTime)unix_timestamp(endTime)-unix_timestamp(startTime)tipsmysql的时间相......
  • Spring Boot 2.x基础教程:使用MyBatis访问MySQL
    虽然SpringDataJPA在国外广泛流行,但是在国内还是MyBatis的天下。所以,今天这篇我们将具体说说如何在SpringBoot中整合MyBatis完成关系型数据库的增删改查操作。整合MyBa......
  • mysql/表sql语句补充/关键字查询
    操作表的SQL语句补充alter1.修改表名 altertable表名rename新表名;2.新增字段 altertableadd字段名字段类型(数字)约束条件3.新增指定字段排在第一位 ......
  • 【Mybatis】动态SQL
    目录动态SQLif语句动态SQLif+where语句动态SQLif+set语句动态SQLchoose(when,otherwise)语句动态SQLtrim语句动态SQLSQL片段动态......
  • MySQL查询关键数据方法
    MySQL查询关键数据方法操作表的SQL语句补充1.修改表名 altertable表名reame新表名;2.新增字段名 altertable表名add字段名字段类型(数字)约束条件;#默认队尾......
  • SQLMAP系列强化
    案例1:DC-9图1:尝试‘or1=1--+    //判断存在注入kali中使用sqlmap工具跑就完了sqlmap-u"http://192.168.178.135/results.php"--data"search=1" ......
  • 20220817 第一组 于芮 mysql数据库查询(第三十四天)
     小白成长记——第三十四天   今天主要学习了mysql数据库的查询语句,对于一个合格的程序猿来说,掌握数据库的查询语句是非常重要的,所以今天不仅学习了理论知识,还作了......
  • MySQL之表查询关键字
    操作表的SQL语句补充修改表名创建一张表:createtableaa(idintprimarykeyauto_increment);altertable表名rename新表名;altertableaarenameabb;新增字......
  • MySQL查询关键字where、group by、having、distinct、order by、limit、redexp正则、
    目录操作表的SQL语句补充truncate\delete\drop的区别查询关键字之select与from查询关键字之where筛选查询关键字之groupby分组查询关键字之having过滤查询关键字之distin......