背景:
.net 2.0 Forms有新的功能,可以根据一个强类型的DataSet生成一套数据的维护界面。
最佳使用场景是使用直接连接数据库修改数据,但是我使用的是WebService来维护数据,所以还是要自己定义提交的功能。
细节:
Form上的DataGridView直接绑定DataSet,修改删改等先操作的是本地的副本,只有点击保存才通过查找本地DataSet有哪些数据被修改,然后把修改的数据通过WebService提交到数据库。
状况:
修改当前行资料之后,只有手动离开当前行,我才能在DataSet里面得到所作的修改,换句话说,如果我直接没有离开当前行,点击“保存”(保存有自定义的保存方法),则无法取得DataGridView所作的修改。
尝试:
我使用promptTypeBindingSource.EndEdit();这个语句虽然可以使得结束编辑状态,却无法达到我想要的。
想起:
如果我使用微软经典的应用场景,保存代码是会自动生成的,所以我新建了一个项目,察看他的代码。
解决:
原来是需要this.Validate();
完整一点就是:
this
.Validate();
promptTypeBindingSource.EndEdit(); // 结束编辑
this .dsRules.UpdateWebService(); // 提交DataSet的修改
promptTypeBindingSource.EndEdit(); // 结束编辑
this .dsRules.UpdateWebService(); // 提交DataSet的修改