加载中…
个人资料
wusir
wusir
  • 博客等级:
  • 博客积分:0
  • 博客访问:6,053
  • 关注人气:280
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

当传递具有已修改行的DataRow 集合时,更新要求有效的UpdateCommand

(2010-10-23 21:06:59)
标签:

更新

要求

有效的

updatecommand

主键

primary

key

sql

it

分类: .NET技术

“当传递具有已修改行的DataRow 集合时,更新要求有效的UpdateCommand”解决办法

 

Visual Studio开发数据库时,有时会有上边的消息出现,这个问题的解决办法,最有可能的是下面的情况:

SQL语句制作出来的查询或者是视图,字段中没有包含要更新(添加、删除和修改)物理表的主键,把主键字段包括进去,问题应该解决了。

原理:不含主键字段,执行Select语句没有任何问题,但数据库无法执行InsertUpdateDelete语句,无论是Windows应用程序开发还是Web开发,都是如此。所以,如果要对显示出来的数据进行修改并更新数据库,一定记住把主键(Primary Key)带上!

举例:比如一个表Users,内有4个字段:UserIdPK)、UserNameTitleAge

如果用下边的语句:

SELECT UserNameTitleAge FROM Users

将其绑定到DataGridView控件上(对Windows应用程序窗体),显示出来没有问题,但使用导航栏的“保存数据”按钮,就会弹出来:“当传递具有已修改行的DataRow 集合时,更新要求有效的UpdateCommand

将上述语句改为:

SELECT * FROM Users

再运行,就没有问题。因为里边含有UserId这个主键了。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有