dataSet.RejectChanges()抛出异常

时间:2012-09-12 07:49:19

标签: c# asp.net

我有一个缓存数据管理器,它从数据库中获取数据并将其返回到网格。每次数据管理器必须获取某些数据时,都有一种清除数据集的方法,该数据集由一些其他方法组成,但也使用_dataset.rejectChanges()方法。

问题: _dataSet.rejectChanges()方法抛出“ RowNotInTableException:此行已从表中删除且没有任何数据.BeginEdit()将允许创建这一行中的新数据。“ 此外,每次都不会抛出此异常,而是随机。 (我怀疑其他用户与我的缓存数据管理器进行交互,这会导致一些奇怪的问题) 是否有可能其他用户可能会导致此问题(如何?)。任何修复?

1 个答案:

答案 0 :(得分:0)

cached data manager是ASP.NET应用程序中的红色标记。

DataSet实例方法不是线程安全的,所以如果多个线程正在更新缓存的DataSet,那么所有的赌注都会关闭,你可以期待随机的“heisenbugs”。

使用锁定,甚至更好地重新考虑缓存可更新数据集的设计。