0

我正在为连锁餐厅开发一个程序,他们通常应该能够通过连接到 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

以主的名义做错了什么:)

4

1 回答 1

0

假设您DataTable的填写确实正确,您还有另外两个选择来获得总和。

  1. DataTable.Compute使用也适用于 .NET < 2.0的旧方法
  2. 使用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"))
于 2012-07-17T12:31:12.880 回答