【发布时间】:2009-02-26 08:50:24
【问题描述】:
我想计算数据表中每列非空值的数量。我可以遍历列并在每列上使用计算函数,但我想知道是否有更有效的方法来执行此操作。
【问题讨论】:
我想计算数据表中每列非空值的数量。我可以遍历列并在每列上使用计算函数,但我想知道是否有更有效的方法来执行此操作。
【问题讨论】:
您可以添加一个带有检查其余列是否为空的表达式的列,请参阅http://msdn.microsoft.com/en-us/library/system.data.datacolumn.expression(VS.80).aspx 然后您可以在该列上计算。
【讨论】:
我认为 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
(在这里输入,注意语法)
请注意,我说的是“类似于以下”。请添加适当的错误/空值检查。
【讨论】: