none
BindingSource回滚操作问题 RRS feed

  • 问题

  • 我有一表单控件如下: DataGridView1,BindSource1, 其中BindSource数据源是一个从后台取的DataTable,而DataGridView的数据源是BindSource1, 现在我在BindSource中新增了若干行,我想取消所做的新增操作应如何做呢? 用BindSource1.EndEdit()方法无效,无法取消新增的操作,只能回滚修改的记录行。
    2011年7月9日 3:14

答案

全部回复

  • 楼主你好:)

    单纯从BindingSource恐怕无法直接撤销多项。我的意思是——

    1)从BindingSource的DataSource中提取那个绑定的DataTable。

    2)然后使用其中的方法:RejectChanges()试试看。


    如果你有其它意见或私下交流,请直接发送maledong_work@foxmail.com;或者讨论(Talk)
    If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    2011年7月9日 5:52
    版主
  • 你好!

    DataSet、DataTable 与 DataRow 都带有 RejectChanges 方法,目的是拒绝最近一次  AcceptChanges 之后的所有更改,包括新增、编辑、删除。


    知识改变命运,奋斗成就人生!
    2011年7月11日 0:29
    版主
  • dear

    BindingSource 若被控件绑定,控件若有任何操作都会同步到BindingSource,你可使用BindingSource.DataSource取出DataTable,然后,使用RejectChanges,请参考以下用法

    http://blog.csdn.net/sunjiakai/article/details/4090100


    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/
    2011年7月12日 6:57
  • 谢谢各位,看来还是只能用table来回滚了,是我钻牛角尖了,我一直认为bindingSource会有一个方法来回滚所有更改。
    2011年7月15日 15:37