Foxtable(狐表)用户栏目专家坐堂 → 偶遇的错误:DataTable 内部索引已损坏:“8”


  共有7180人关注过本帖树形打印复制链接

主题:偶遇的错误:DataTable 内部索引已损坏:“8”

帅哥哟,离线,有人找我吗?
atmetmicoo
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:531 积分:4155 威望:0 精华:0 注册:2012/11/26 21:54:00
偶遇的错误:DataTable 内部索引已损坏:“8”  发帖心情 Post By:2013/3/18 15:50:00 [只看该作者]

狐爸,

发布后的软件在运行过程中经常会遇到些莫名其妙的错误,必须重启才能使用,错误如下:

.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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:531 积分:4155 威望:0 精华:0 注册:2012/11/26 21:54:00
  发帖心情 Post By:2013/3/18 16:16:00 [只看该作者]

顶一下。

 回到顶部
帅哥,在线噢!
狐狸爸爸
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/18 17:13:00 [只看该作者]

可能和你的代码有关系,请留意一下规律,这样才能分析原因。

 回到顶部
帅哥哟,离线,有人找我吗?
atmetmicoo
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:531 积分:4155 威望:0 精华:0 注册:2012/11/26 21:54:00
  发帖心情 Post By:2013/3/21 10:15:00 [只看该作者]

好的,我先克服克服

 回到顶部
帅哥哟,离线,有人找我吗?
atmetmicoo
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:531 积分:4155 威望:0 精华:0 注册:2012/11/26 21:54:00
  发帖心情 Post By:2013/4/1 9:11:00 [只看该作者]

找不到问题根源,又出现


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/4/1 9:18:00 [只看该作者]

通过使用多个语句调用DataTable.Select方法时,可能会返回错误的结果。

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/4/1 9:19:00 [只看该作者]

如果正在编辑数据表对象中的一个或多个行,然后发生DataTable.Merge操作,可能会损坏DataTable对象的数据集对象的记录管理器。
一般我们会使用DataTable.Select()方法来筛选数据,而DataTable会在执行Select()方法的时候系统会默认创建一个DataView,而DataView创建的时候会创建内部索引,如果这个时候数据被操作(添加,删除),那么内部索引就会被破坏,从而出错。
[此贴子已经被作者于2013-4-1 9:26:29编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
关键下一秒
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:816 积分:6685 威望:0 精华:2 注册:2012/8/23 12:35:00
  发帖心情 Post By: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
  9楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2014/9/17 8:17:00 [只看该作者]

这个问题无从下手的,删除数据保存下 重启应该会好的.

 回到顶部