数据表vb.net 2010中的sum列

时间:2014-08-03 05:22:33

标签: vb.net datatable sum

我想在我的TotalAmount DataTable中获取dt列的总和,但我总是收到此错误:

  

对象引用未设置为对象的实例。

我在Visual Studio 2012中使用VB。

以下是代码:

Dim table As DataTable = CartDataSet.Tables("dt")
Dim result As Integer
result = table.Compute("SUM(TotalAmount)", "")

Screenshot

7 个答案:

答案 0 :(得分:1)

您正尝试取消引用NULL对象引用,这意味着tableNULL

反过来,这意味着CartDataSet不包含名为"dt"

的表格

答案 1 :(得分:1)

Dim result As Object
result = table.Compute("SUM(TotalAmount)", "") 

然后执行result.ToString()您将获得输出

答案 2 :(得分:0)

可能出现的问题

  • 表格为空
  • 表中没有记录

解决方案:

1-最好在计算之前检查数据表状态,如



If Not table Is Nothing AndAlso table.Rows.Count > 0 Then
...
End If




2-在没有记录的情况下计算时检查DBNULL



IIf(IsDBNull(table.Compute("SUM(TotalAmount)", "")), "0", table.Compute("SUM(TotalAmount)", ""))




答案 3 :(得分:0)

Dim dt As DataTable = TajDataSet.Tables("MAtab")
Dim sum As Integer = Convert.ToInt32(dt.Compute("SUM(ServiceCharge)", String.Empty))
SCC.Text = sum.ToString

答案 4 :(得分:0)

对于" .Compute"要运作的功能,你必须声明你的变量"结果"作为"对象"而不是"整数"。然后你可以转换"结果"中的值。使用" Convert.ToInt"。

的整数
Dim result as object

答案 5 :(得分:0)

你可以像这样使用linq。

Dim result As Decimal = dt.AsEnumerable().Sum(Function(row) row.Field(Of Decimal)("TotalAmount"))

答案 6 :(得分:0)

昏暗表格为DataTable = CartDataSet.Tables(“ dt”)

将结果设为整数

result = IIf(IsDBNull(dtable.Compute(“ SUM(TotalAmount)”,“”),0,dtable.Compute(“ SUM(TotalAmount)”,“”))