0

私はレストラン チェーンのプログラムを開発しています。通常、dbf ファイルに接続する vb.net アプリケーションを介してゲスト数と売上を計算できるはずです。私のデータセットは私のデータテーブルと同じように正しく入力されます(datarowview = right dataを入力することでチェックされます)しかし、問題が発生します。データテーブルを使用するすべての関数で、データテーブルは最終値をスキップします。この場合、すべての値です1か月なので、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あなたが本当に正しく満たされていると仮定すると、合計を取得するための他の2つのオプションがあります。

  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 に答える