【发布时间】:2015-03-20 15:15:25
【问题描述】:
如果行数 > 0,我有一行代码应该清除数据表。但是,尽管行数为 0,但仍会执行清除行:
我在使用这个(继承的)应用程序时遇到了一些非常奇怪的行为,并调查了构建是否正常工作(我已经清理和重建了很多次,并确保所有程序集都是 x86)并关闭了代码优化为每this 和this 因为我担心我的 pdb 文件与我的代码不同步,但是没有任何帮助。
我完全不知道为什么要执行这行代码,非常感谢任何建议。
编辑:dt 是 System.Data.Datatable,异常详情是:
发生 System.Data.RowNotInTableException H结果=-2146232024 Message=该行已从表中删除并且没有任何数据。 BeginEdit() 将允许在该行中创建新数据。 源=系统.数据 堆栈跟踪: 在 System.Data.DataRow.GetDefaultRecord() 内部异常:
【问题讨论】:
-
dt 是什么类型?它是香草数据表吗? msdn.microsoft.com/en-us/library/…
-
是的,我已经更新了问题
-
这可能是一个竞争条件。是否有可能其他线程在您获取表格后对其进行了修改?
-
同意阿迪。数据表/数据行集合上也可能有一个事件。 '当计数被检查时,返回原始计数,然后清除项目以与下一个人搞砸'
-
DataTable.Clear()不会抛出RowNotInTableException因此,您可能没有调试您认为的内容,即您的代码与您的二进制文件不匹配。