我正在为一系列餐馆开发一个程序,他们通常应该能够通过连接到dbf文件的vb.net应用程序来计算他们的访客数量和销售额。 我的数据集正确填充,因为我的数据表(通过填写datarowview =正确的数据进行检查) 但后来我遇到了一个问题,在使用我的数据表的所有函数中,数据表跳过最终值,在这种情况下,它是一个月的所有值,因此它跳过31或30天。 尝试的时候,尝试每一个,调试很多(我怎么发现它是最后一个值)。但现在我不知道为什么函数
没有使用最后一个值 Public Function Getgctakeout(ByVal i_table As DataTable)
table = i_table
i = 0
gctakeout = 0
For Each row As DataRow In i_table.Rows
gctakeout = gctakeout + Convert.ToDouble(row(4))
Next row
'MessageBox.Show(gctakeout)
Return gctakeout
End Function
此函数不使用最后一行的值来计算gctakeout
主的名字是错的:)
答案 0 :(得分:0)
假设您的DataTable
确实填写正确,您还有两个其他选项可以获得总和。
DataTable.Compute
方法,该方法也适用于.NET< 2.0 Linq-To-DatSet
和Enumerable.Sum
1)
Dim Sum = CType(table.Compute("Sum(ColumnName)", Nothing), Double)
2)
Dim Sum = table.AsEnumerable().
Sum(Function(row)row.Field(Of Double)("ColumnName"))