以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]DataTable 内部索引已损坏:“5”。 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=158476) |
-- 作者:xiaoqiwei -- 发布时间:2020/11/21 3:14:00 -- [求助]DataTable 内部索引已损坏:“5”。 Foxtable版本:2020-01-19 这是什么问题?突然这样,总是报下面两个错误 System.InvalidOperationException: DataTable 内部索引已损坏:“5”。 在 System.Data.RBTree`1.RBInsert(Int32 root_id, Int32 x_id, Int32 mainTreeNodeID, Int32 position, Boolean append) 在 System.Data.RBTree`1.RBInsert(Int32 root_id, Int32 x_id, Int32 mainTreeNodeID, Int32 position, Boolean append) 在 System.Data.Index.RecordStateChanged(Int32 oldRecord, DataViewRowState oldOldState, DataViewRowState oldNewState, Int32 newRecord, DataViewRowState newOldState, DataViewRowState newNewState) 在 System.Data.DataTable.RecordStateChanged(Int32 record1, DataViewRowState oldState1, DataViewRowState newState1, Int32 record2, DataViewRowState oldState2, DataViewRowState newState2) 在 System.Data.DataTable.SetNewRecordWorker(DataRow row, Int32 proposedRecord, DataRowAction action, Boolean isInMerge, Boolean suppressEnsurePropertyChanged, Int32 position, Boolean fireEvent, Exception& deferredException) 在 System.Data.DataRow.EndEdit() 在 【FoxTable】.DataTable.O.o_00OO_.(Object A_0, DataColumnChangeEventArgs A_1) System.Data.ConstraintException: 列“_Identify”被约束为是唯一的。值“106”已存在。 在 System.Data.UniqueConstraint.CheckConstraint(DataRow row, DataRowAction action) 在 System.Data.DataTable.RaiseRowChanging(DataRowChangeEventArgs args, DataRow eRow, DataRowAction eAction, Boolean fireEvent) 在 System.Data.DataTable.SetNewRecordWorker(DataRow row, Int32 proposedRecord, DataRowAction action, Boolean isInMerge, Boolean suppressEnsurePropertyChanged, Int32 position, Boolean fireEvent, Exception& deferredException) 在 System.Data.DataRow.EndEdit() 在 【FoxTable】.DataTable.O.o_00OO_.(Object A_0, DataColumnChangeEventArgs A_1) [此贴子已经被作者于2020/11/21 3:41:27编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/11/21 9:42:00 -- 按住ctrl键打开项目,如果不行就是项目损坏了,使用备份,如果没有备份周一联系发给客服修复 |
-- 作者:xiaoqiwei -- 发布时间:2020/11/21 14:22:00 -- 项目能打开,就是执行统计过程中有时正常 有时会报错 |
-- 作者:有点蓝 -- 发布时间:2020/11/21 14:51:00 -- 执行了什么代码? 有没有在异步线程里面设置表格数据?
|
-- 作者:xiaoqiwei -- 发布时间:2020/11/21 15:42:00 -- 异步线程里没有做表格数据,应该是异步多表统计完后填充表数据时(填进临时表) |
-- 作者:有点蓝 -- 发布时间:2020/11/21 16:15:00 -- 多个线程写一个临时表?这种肯定不行的。改为使用同步函数写入。 |
-- 作者:xiaoqiwei -- 发布时间:2020/11/21 20:46:00 -- 异步执行多表统计,再同步将结果写入临时表,原本好好的,昨天win10打了补丁后就出现了异常,不知道是不是系统补丁导致的问题,昨天的win10家庭中文版补丁还删除了组策略,远程桌面也有异常,组策略和远程桌面已修复,就是不知道是不是该补丁也导致狐表异常 |
-- 作者:有点蓝 -- 发布时间:2020/11/22 20:17:00 -- 试试卸载.net重装一下 |
-- 作者:xiaoqiwei -- 发布时间:2020/11/23 22:39:00 -- 问题已找到,在临时表使用ReplaceFor语句替换数据时有时会报那个错误 另外 PY.GetPY("部门", False, 3)有时会转换错,正确应该是bm,却有时转换出来的是 m ,部字没有转换出来(几率出错),还有其他的中文也是有机会没有转换成功。 |
-- 作者:有点蓝 -- 发布时间:2020/11/24 10:26:00 -- 我做了个计划管理,隔段时间就调用PY.GetPY("部门", False, 3)写入表格,新增了10W行记录,没有发现有问题。会不会是其它代码逻辑影响了? ReplaceFor语句会不会在异步里使用?会不会有异步同时出现了新增和ReplaceFor的可能?
|