我想在我的TotalAmount
DataTable
中获取dt
列的总和,但我总是收到此错误:
对象引用未设置为对象的实例。
我在Visual Studio 2012中使用VB。
以下是代码:
Dim table As DataTable = CartDataSet.Tables("dt")
Dim result As Integer
result = table.Compute("SUM(TotalAmount)", "")
答案 0 :(得分:1)
您正尝试取消引用NULL对象引用,这意味着table
为NULL
。
反过来,这意味着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)”,“”))