多列的数据表计算功能

时间:2009-02-26 08:50:25

标签: asp.net datatable

我想计算Datatable中每列的非空值数。我可以遍历列并在每列上使用compute函数,但我想知道是否有更有效的方法来执行此操作。

2 个答案:

答案 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

(输入此处,注意语法)

请注意,我说“类似于以下”。请添加适当的错误/空值检查。