textbox(winform)数据绑定后更新的问题

streetgrass 2005-07-17 06:15:29
我在对textbox进行数据绑定后,对数据的修改无法写回数据库:
//数据绑定
tb1.DataBindings.Add("Text",ds,"mytable.colunm1");

//更新
DataSet changesDataSet = ds.GetChanges(DataRowState.Added | DataRowState.Modified);

if(changesDataSet != null)
da.Update(changesDataSet );

在数据绑定后,数据可以显示在textbox(tb1)中,当我修改这个数据后,ds中的确也变成了我修改后的值,但是changesDataSet却是空的,因此就没法把我的修改写回数据库。
我把数据绑定到datagrid然后在datagrid做修改的话,changesDataSet就不为空。
请问这是为什么,我该怎么修改代码?谢谢各位
...全文
302 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
streetgrass 2005-07-18
  • 打赏
  • 举报
回复
谢谢,问题解决了,不过还有一个问题不太明白,
this.BindingContext[objMyDataSet,"Products"].CancelCurrentEdit();
这句应该是指对数据的更改被拒绝,但是我用的时候,第一次点击“取消”按钮时数据还是被更改了,从第二次起更改才被拒绝,请问这是为什么?谢谢

marvelstack 2005-07-18
  • 打赏
  • 举报
回复
1。在更新之前不要调用AcceptChanges()方法,
这个我想你应该没有调用过,

2。还有一种可能是,你可能是在编辑TextBox里的数据后点击保存按钮,那需要在
按钮处理程序加一条条当前编辑状态的提交才会把TextBox的新数据写到DataSet.
类似代码如下:
// 停止当前的任何编辑。
this.BindingContext[objMyDataSet,"Categories"].EndCurrentEdit();
this.BindingContext[objMyDataSet,"Products"].EndCurrentEdit();

具体可以看文章,
http://blog.csdn.net/zhzuo/archive/2005/01/03/238273.aspx



110,502

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧