我在Excel工作表中填充DataTable对象。我并不指望用户正确输入数据,我想删除A栏中具有空值的行。我已经搜索了很多,看起来每个人都是使用for循环执行此操作。这就是问题所在:757,000行。如果数据格式不正确,DataTable会被Excel的最大值1048575填满。我不需要单独检查每个值。在SQL Server中,您可以编写:
DELETE table
WHERE columnA IS NULL
我考虑过在DataTable填充上排除空值,但我无法让它可靠地工作,因为我不知道列A的名称,直到它在DataTable中,有时候是列name中间有一个\n
字符会引发语法错误。
如果没有循环,我怎样才能完成同样的事情?
答案 0 :(得分:4)
如何从第一个创建一个新的,干净的DataTable?
DataTable t = new DataTable(); //actually your existing one with bad records
DataTable newTable = t.Select().Where(x => !x.IsNull(0)).CopyToDataTable();
答案 1 :(得分:0)
只需使用Linq ......
var newData = (from d in DataTable //this would be your datatable.
where d.columnA != NULL
select d.*).CopyToDataTable<DataRow>();
然后只使用newData变量,它保存新填充的数据表。