通过DataSet更新数据库,我的原理是这样的, 一个用户控件(里面放了和数据库表对应的绑定列,)
一个DataGridView,两个同时共用一个数据集ds,正常情况操作下修改,删除是没问题的,但按如下步骤就会出错;1.先修改一条记录中的某个值没空(修改前该字段值不为空),不是NULL,
2.点击保存数据,保存成功,
3.再点击删除该记录,错误就发生了.说影响了1条记录的0行
一个DataGridView,两个同时共用一个数据集ds,正常情况操作下修改,删除是没问题的,但按如下步骤就会出错;1.先修改一条记录中的某个值没空(修改前该字段值不为空),不是NULL,
2.点击保存数据,保存成功,
3.再点击删除该记录,错误就发生了.说影响了1条记录的0行
解决方案 »
- 关于 UltraGrid 中的 如何隐藏不想要的列
- 为什么不能为一个substring赋值??
- C#钩子问题 Public Const WM_MOUSEMOVE As Integer = &H200
- 求助,如何读取正在使用的文件
- 请高人解答接口作为成员变量、属性的返回值类型等问题
- 哪里有KTV录歌软件?
- 请问ArraryList设的域名空间是什么呢:
- 如何屏蔽掉几个热键!alt,ctrl,alt+f4,win
- 请教线程问题
- C# 在PC 上操作sdf 数据库,需要安装那些环境啊?请大侠指点一下,谢谢!
- 在普通C#类中,有什么办法可以知道自己是否是在web程序中?
- 如何做一个分组工具栏(形如VS2005右侧的工具箱)?
1.先修改一条记录中的某个值为空(修改前该字段值不为空,即有值),不是NULL,
2.点击保存数据,保存成功,同时也调用了ds的Acceptchange()方法.
3.再点击删除该记录,错误就发生了.说影响了1条记录的0行
我其它的步骤新增,修改,删除都没问题,就是上面的情况才出问题.
我一般都是自己加一个delete的查询到table adapter
====================================================
1,启动SQlprofilter追踪SQL指令的执行情况
2,BtnDElete_Click()
{
messagebox.show(dataset的当前行的某个字段的值,看看是否为null)
}== 建议用SQL指令操作
sqlcommand deletecmd=new sqlcommand(deletestr,cnn)
cnn.open()
1,启动SQlprofilter追踪SQL指令的执行情况
2,BtnDElete_Click()
{
messagebox.show(dataset的当前行的某个字段的值,看看是否为null)
}== 建议用SQL指令操作
sqlcommand deletecmd=new sqlcommand(deletestr,cnn)
cnn.open()或者可能是:
保存在DataSet中,删除是在数据库表中执行,冲突了
接帖