大家好,
我有以下问题。
我有一个大的数据库表内的MS SQL数据库,我里面的DataTable对象。 DataTable对象本身,我显示的数据绑定到DataGridView对象。有时我想隐藏一些数据,这是不是有关当前视图。里面的DataTable的DataView对象似乎是最好的方式做到这一点。 DataView中有一个属性的RowFilter在这里您可以设置可见行。输入的RowFilter是一个SQL字符串。不幸的是,我得到一个堆栈溢出异常,当字符串太长。下列情况发生时,则:
"在System.Data.dll中发生未处理的异常类型'System.StackOverflowException'??BR />
我已经尝试过分割字符串,并调用的RowFilter几次,但是,这将覆盖旧的设置。同样的情况时,调用DataTable对象的"选择"功能。
没有人有类似的问题并找到解决办法。
下面,我已经安排我的代码:
感谢所有帮助
sahit
DataTable sourceTable = new DataTable();
SqlStringBuilder filter = new SqlStringBuilder();
// Set source from database
// Fill "filter" with a very large string
// Like {[intType = '1']} AND(intFamilyID = '2' OR intFamilyID = '4' OR
intFamilyID = '6') .........................}
// 17 000 signs
// Here happens the problem
sourceTable.DefaultView.RowFilter = = filter.ToString();
// The same happens when trying this.
DataRow[] resultSet = sourceTable.Select(filter.ToString());