我有一个Form(WinForm),上面有两个TextBox,两个按钮,分别是<保存>,<撤销>
WinForm的一个Form中有这样的代码:
BindingSource MyBindingSource = new BindingSource();
MyBindingSource.DataSource = MyDataSet.Tables["Table1"].DefaultDataView;
//数据绑定
TextBox1.DataBinding.Add("Text",MyBindingSource,"Field1");
TextBox2.DataBinding.Add("Text",MyBindingSource,"Field2");
上面代码中的MyDataSet中的Table1是通过SqlDataAdapter得来的,
并且这个Adapter是配置了UpdateCommand,InsertCommand,UpdateCommand的。
现在对这个数据进行编辑,编辑之后按<保存>按钮,直接使用DataAdapter.Update()时,数据保存不到数据源中去(Sql数据库)。
必须在DataAdapter.Update()之前加一句:MyBindingSource.EndEdit(),这样是可以保存到数据源中的。
问题是,如果保存不成功,比如因为某种原因出错了。我想撤销时撤销到按下<保存>铵钮之前的状态去,即本次编辑所有的修改都要保留,因为使用者可能会在本次编辑的基础上再进行更改,而不是直接回到自上次保存成功之后的数据。只有用户按下<撤销>按钮时才放弃所有更改。
有什么办法可以解决这个问题吗?是不是我的思路有问题?
请高手指点一下。