一般我们会使用DataTable.Select()方法来筛选数据,而DataTable会在执行Select()方法的时候系统会默认创建一个DataView,而DataView创建的时候会创建内部索引,如果这个时候数据被操作(添加,删除),那么内部索引就会被破坏,从而出错。所以解决的方法也很简单,就是新建一个DataView,并在创建DataView的时候锁定DataTable。
DataView myDV;
lock(myTable)
{
myDV=new DataView(myTable,"过滤","排序",DataViewRowState.CurrentRows);
//数据操作myDV可以直接操作,不影响结果
}
DataView myDV;
lock(myTable)
{
myDV=new DataView(myTable,"过滤","排序",DataViewRowState.CurrentRows);
//数据操作myDV可以直接操作,不影响结果
}
本文介绍如何使用DataView并锁定DataTable来避免数据筛选时因数据变动而导致的内部索引破坏问题。通过具体示例代码展示了正确的操作步骤。
1万+

被折叠的 条评论
为什么被折叠?



