以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 偶遇的错误:DataTable 内部索引已损坏:“8” (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=29985) |
-- 作者:atmetmicoo -- 发布时间:2013/3/18 15:50:00 -- 偶遇的错误:DataTable 内部索引已损坏:“8” 狐爸, 发布后的软件在运行过程中经常会遇到些莫名其妙的错误,必须重启才能使用,错误如下: .NET Framework 版本:2.0.50727.5466 Foxtable 版本:2012.11.29.1 错误所在事件: 详细错误信息: System.InvalidOperationException: DataTable 内部索引已损坏:“8”。 在 System.Data.DataTable.SetNewRecordWorker(DataRow row, Int32 proposedRecord, DataRowAction action, Boolean isInMerge, Int32 position, Boolean fireEvent, Exception& deferredException) 在 System.Data.DataTable.SetNewRecord(DataRow row, Int32 proposedRecord, DataRowAction action, Boolean isInMerge, Boolean fireEvent) 在 System.Data.DataRow.SetNewRecord(Int32 record) 在 System.Data.DataRow.EndEdit() 在 System.Data.DataRow.set_Item(DataColumn column, Object value) 在 Foxtable.DataTable.O100lOO0O1(Object O0l0l1, OleDbRowUpdatedEventArgs O) 在 System.Data.OleDb.OleDbDataAdapter.OnRowUpdated(RowUpdatedEventArgs value) 在 System.Data.Common.DbDataAdapter.Update(DataRow[] dataRows, DataTableMapping tableMapping) 在 System.Data.Common.DbDataAdapter.Update(DataRow[] dataRows) 在 Foxtable.DataTable.O1llOO100l0lO(DataRow[] O00O) 有些时候提示:DataTable 内部索引已损坏:“5” 99%的时候运行正常,请教什么情况下才会损坏DataTable的内部索引呀?
|
-- 作者:atmetmicoo -- 发布时间:2013/3/18 16:16:00 -- 顶一下。 |
-- 作者:狐狸爸爸 -- 发布时间:2013/3/18 17:13:00 -- 可能和你的代码有关系,请留意一下规律,这样才能分析原因。 |
-- 作者:atmetmicoo -- 发布时间:2013/3/21 10:15:00 -- 好的,我先克服克服 |
-- 作者:atmetmicoo -- 发布时间:2013/4/1 9:11:00 -- 找不到问题根源,又出现 |
-- 作者:Bin -- 发布时间:2013/4/1 9:18:00 -- 通过使用多个语句调用DataTable.Select方法时,可能会返回错误的结果。 |
-- 作者:Bin -- 发布时间:2013/4/1 9:19:00 -- 如果正在编辑数据表对象中的一个或多个行,然后发生DataTable.Merge操作,可能会损坏DataTable对象的数据集对象的记录管理器。 一般我们会使用DataTable.Select()方法来筛选数据,而DataTable会在执行Select()方法的时候系统会默认创建一个DataView,而DataView创建的时候会创建内部索引,如果这个时候数据被操作(添加,删除),那么内部索引就会被破坏,从而出错。
[此贴子已经被作者于2013-4-1 9:26:29编辑过]
|
-- 作者:关键下一秒 -- 发布时间:2014/9/17 0:06:00 -- 以下是引用Bin在2013-4-1 9:19:00的发言:
如果正在编辑数据表对象中的一个或多个行,然后发生DataTable.Merge操作,可能会损坏DataTable对象的数据集对象的记录管理器。 一般我们会使用DataTable.Select()方法来筛选数据,而DataTable会在执行Select()方法的时候系统会默认创建一个DataView,而DataView创建的时候会创建内部索引,如果这个时候数据被操作(添加,删除),那么内部索引就会被破坏,从而出错。
[此贴子已经被作者于2013-4-1 9:26:29编辑过] 请教:如何避免此问题呢?
|
-- 作者:blackzhu -- 发布时间:2014/9/17 8:17:00 -- 这个问题无从下手的,删除数据保存下 重启应该会好的. |