我修改了记录的一值,在Botton事件在保存到数据库之前,调用
this.BindingContext[数据源].EndCurrentEdit();
this.dataGrid_BaseTable.EndEdit(xxx,xxxx,xxx)都没有什么用,数据就是不更新,必须改变数据输入焦点才行。

解决方案 »

  1.   

    嗯,同样遇到这样的问题,我把datagrid和一个textbox绑定到同一个dataset,发现在textbox里面改动数据后,一定要先把焦点移开textbox才能改变dataset的值:(
      

  2.   

    嗯,同样遇到这样的问题,我把datagrid和一个textbox绑定到同一个dataset,发现在textbox里面改动数据后,一定要先把焦点移开textbox才能改变dataset的值:(\\\\\\\\\\\\\\\\\\你的使用EndCurrentEdit();后应该可以了吧
    实在不行就用程序把焦点移开,再移动回来。然后再更新就没有问题了。
      

  3.   

    我是这样解决的
    this.textBox2.Focus();
    this.textBox1.Focus();
    把焦点移动一下,再移动回来!
      

  4.   

    同样的,datatimepicker也是同样的问题,必须先改变日期以后才能更新,请问有人会解决吗?等待.......
      

  5.   

    DataRowView的记录EndCurrentEdit后就会被提交到DataTable,
    TextBox没离开焦点前还没有提交给DataRowView,你再EndCurrentEdit也是不行
    你要做的是怎样让TextBox.Text提交给DataRowView
    所以你要熟悉绑定机制
    参考BindingContext,BindingManagerBaseliujun808是高手啊,佩服ing,这么漂亮地就解决了
    不过这种另类手法一定是有副作用的,
      

  6.   

    刚才试了一下!
    我用DataGrid1[1, 1]="abc";使行2列2的值改为"abc",然后用OleDbDataAdapter.Update(DataSet,"XXX");,发现数据没有更新!当把DataGrid1[1, 1]="abc";改为DataSet.Tables[0].Rows[1][1]="abc";后再执行却发现数据已更新了!