C# EnforceConstraints引发NullReferenceException

C# EnforceConstraints引发NullReferenceException,c#,dataset,nullreferenceexception,currencymanager,C#,Dataset,Nullreferenceexception,Currencymanager,我遇到了一个奇怪的行为,当我尝试更改EnforceConstraints值false>true时,它会抛出一个NullReferenceException dataSet1.EnforceConstraints = true; 最奇怪的是,当我尝试保存数据三次时抛出异常。 1.在dataTable1中创建数据新行。保存它。 2.更改一些字段值。保存它。 3.更改相同的数据。尝试保存它,但出现异常。 4.如果我更改相同的数据并再次尝试保存它,我将再次获得异常,但如果我不这样做,所有数据都将完美保

我遇到了一个奇怪的行为,当我尝试更改EnforceConstraints值false>true时,它会抛出一个NullReferenceException

dataSet1.EnforceConstraints = true;
最奇怪的是,当我尝试保存数据三次时抛出异常。 1.在dataTable1中创建数据新行。保存它。 2.更改一些字段值。保存它。 3.更改相同的数据。尝试保存它,但出现异常。 4.如果我更改相同的数据并再次尝试保存它,我将再次获得异常,但如果我不这样做,所有数据都将完美保存。 注1:当我处理创建、保存的数据以及重新加载包含该数据的表单时,不会引发异常。 注2:当我调用currencyManager.EndCurrentEdit时,场景的1点、2点和3点之间的所有行为差异都会发生;控件的,与我的数据集1相关。如果我在调试过程中尝试更改场景第1点和第2点中EndCurrentEdit之前和之后的EnforceConstraints值,调试器将显示异常。但在第3点中,在调用EndCurrentEdit后的一个步骤中,我可以将调试器中的EnforceConstraints值从false更改为true并返回,而不会出现任何问题

PS:我知道这些信息可能不充分,但这个项目非常庞大,我需要一些想法,如何找到我的NullReferenceException的原因。 我只需要更多关于currencyManager.EndCurrentEdit和EnforceConstraints的信息,我们在MSDN中有这些约束。或者我错过了smth,或者它是微软的一个缺陷? 多谢各位

Upd.:StackTrace: 位于System.Data.DataColumn.IsNotAllowdBnullVillected 位于System.Data.DataSet.EnableConstraints 在System.Data.DataSet.set_处强制约束布尔值 在d:…\SomeFileName.cs中的MyProject.MyMethod处:第9795行 异常消息:
对象引用未设置为对象的实例。

异常消息和堆栈会有所帮助。谢谢。很抱歉忘记了。我已经允许每个数据字段为Null,异常已经消失。最后我找到了字段,但我还不明白为什么只有在第三次保存时才会抛出异常。