0
我正在開發一個連鎖餐廳的程序,他們通常應該能夠通過連接到dbf文件的vb.net應用程序來計算其客人數和銷售額。 我的數據集被正確填寫,正如我的數據表(通過填寫datarowview =正確的數據檢查) 但是,然後我遇到了一個問題,在我的所有函數使用我的數據表,數據表跳過最後的值,在這種情況下,它是所有值從一個月,所以它可以跳過31或第30天。 嘗試while,嘗試每個,調試很多(我怎麼發現它是最後一個值)。但現在我不知道爲什麼最後的值不使用功能函數不讀取最後一個值
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
在什麼名字的主人是錯誤:)
你的代碼看起來很好,'For Each'應該確保每一行都被迭代。當你調試它不循環表中的最後一行? – ipr101 2012-07-17 12:30:33
Nothig在此代碼中出錯。唯一可能的原因是傳入的i_table。在循環之前檢查i_table.Rows.Count。此外,空值可能會觸發異常。 – Steve 2012-07-17 12:30:57
我不同意以前的評論,我不認爲這段代碼看起來不錯。當你在最後返回總和時,你爲什麼使用類成員變量來進行計算?您還缺少函數的返回類型。總而言之,這個函數看起來可能會有很多'副作用',特別是如果你的應用程序有任何併發的話。 – 2012-07-17 12:46:14