首页 > 解决方案 > 如果唯一的变化是新行,有没有办法阻止 myDataSet.HasChanges() 返回 true?

问题描述

Button我有一个Form点击呼叫时的那个myBindingSource.AddNew()。然后,与在该新行上设置值相关的控件变得可见。

Form在我调用的关闭事件中,myDataSet.HasChanges()如果它返回True,我会提示用户是否要保存他们所做的更改。

在用户单击添加新行但随后关闭表单(无论出于何种原因)而不设置任何值的情况下,显然myDataSet.HasChanges()会返回,True因为添加了新行。

False如果唯一的变化是新行,我想要一种让它返回的方法。

我试过myBindingSource.EndEdit()之后myDataSet.AcceptChanges立即打电话,myBindingSource.AddNew()myDataSet.HasChanges()仍然返回True

我认为通过调用myDataSet.AcceptChanges() 它基本上可以清除板岩,并且只有在那之后所做的更改才会被拾取。

或者,如果有更好的方法,我想听听。

我热衷于仅DataBase在提示保存时一次性保存回的想法,而不是在每次值更改时插入新行Button.Click并更新该行。

标签: vb.netdatasetbindingsource

解决方案


比我的评论更具体:

If myDataSet.HasChanges(DataRowState.Deleted Or DataRowState.Modified) Then

推荐阅读