我想计算Datatable中每列的非空值数。我可以遍历列并在每列上使用compute函数,但我想知道是否有更有效的方法来执行此操作。
答案 0 :(得分:1)
您可以添加一个带有表达式的列,该表达式检查列的休止符是否为空,请参阅http://msdn.microsoft.com/en-us/library/system.data.datacolumn.expression(VS.80).aspx 然后你可以在该列上进行计算。
答案 1 :(得分:1)
我认为Compute函数在这种情况下非常合适。您可以使用类似于以下内容的代码:
For Each col as DataColumn in myTable
Dim aggExpr as string = string.format("Count{0}", col.ColumnName)
Dim filterExpr as string = string.format("{0} IS NULL", col.ColumnName)
Dim myCount as integer = CInt(myTable.Compute(aggExpr, filterExpr))
Console.WriteLine(myCount)
Next
(输入此处,注意语法)
请注意,我说“类似于以下”。请添加适当的错误/空值检查。