一般我们会使用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可以直接操作,不影响结果
}