日期:2014-05-19  浏览次数:20978 次

通过DataSet更新数据库的失败的问题,高分100
通过DataSet更新数据库,

我的原理是这样的,   一个用户控件(里面放了和数据库表对应的绑定列,)
一个DataGridView,两个同时共用一个数据集ds,

正常情况操作下修改,删除是没问题的,

但按如下步骤就会出错;

1.先修改一条记录中的某个值没空(修改前该字段值不为空),不是NULL,
2.点击保存数据,保存成功,
3.再点击删除该记录,错误就发生了.说影响了1条记录的0行

------解决方案--------------------
没看明白
------解决方案--------------------
路过~~
------解决方案--------------------
贴代码吧
------解决方案--------------------
没看明白
------解决方案--------------------
关注,UP
------解决方案--------------------
看懂了 但没想通哪里会出问题,关注...
------解决方案--------------------
你去看看自动生成的DeleteCommand就知道了
我一般都是自己加一个delete的查询到table adapter
------解决方案--------------------
做一下清空..
------解决方案--------------------
看不懂
------解决方案--------------------
3.再点击删除该记录,错误就发生了.说影响了1条记录的0行
====================================================
1,启动SQlprofilter追踪SQL指令的执行情况
2,BtnDElete_Click()
{
messagebox.show(dataset的当前行的某个字段的值,看看是否为null)
}

== 建议用SQL指令操作
sqlcommand deletecmd=new sqlcommand(deletestr,cnn)
cnn.open()
------解决方案--------------------
保存在DataSet中,删除是在数据库表中执行,冲突了
------解决方案--------------------
你删除的时候丢失了焦点吧
------解决方案--------------------
3.再点击删除该记录,错误就发生了.说影响了1条记录的0行

答:
1,启动SQlprofilter追踪SQL指令的执行情况
2,BtnDElete_Click()
{
messagebox.show(dataset的当前行的某个字段的值,看看是否为null)
}

== 建议用SQL指令操作
sqlcommand deletecmd=new sqlcommand(deletestr,cnn)
cnn.open()

或者可能是:
保存在DataSet中,删除是在数据库表中执行,冲突了
------解决方案--------------------
直接用sql写把,这样保险点,还能随时在sqlserver里查