-1
我試圖從MySQL中讀取數據,並顯示在DataGridView中有如下代碼:讀取數據的DataGridView
Dim totalManagerQuantity As Integer
Dim totalStaffQuantity As Integer
Dim totalProductionQuantity As Integer
Dim totalSalesManager As Double
Dim totalSalesStaff As Double
Dim totalSalesProduction As Double
sqL = "SELECT TDate, InvoiceNo,
(
SELECT TD.Quantity
FROM TransactionDetails as TD
WHERE TD.InvoiceNo = T.InvoiceNo
AND TD.ProductNo = 1
) as ManagerQuantity,
(
SELECT TD.ItemPrice
FROM TransactionDetails as TD
WHERE TD.InvoiceNo = T.InvoiceNo
AND TD.ProductNo = 1
) as ManagerPrice,
(
SELECT TD.Quantity
FROM TransactionDetails as TD
WHERE TD.InvoiceNo = T.InvoiceNo
AND TD.ProductNo = 2
) as StaffQuantity,
(
SELECT TD.ItemPrice
FROM TransactionDetails as TD
WHERE TD.InvoiceNo = T.InvoiceNo
AND TD.ProductNo = 2
) as StaffPrice,
(
SELECT TD.Quantity
FROM TransactionDetails as TD
WHERE TD.InvoiceNo = T.InvoiceNo
AND TD.ProductNo = 3
) as ProductionQuantity,
(
SELECT TD.ItemPrice
FROM TransactionDetails as TD
WHERE TD.InvoiceNo = T.InvoiceNo
AND TD.ProductNo = 3
) as ProductionPrice
FROM Transactions as T
WHERE TDate BETWEEN '" & frmFilterReportInvoice.dtpStartDate.Value.ToString("MM/dd/yyyy") & "'
AND '" & frmFilterReportInvoice.dtpEndDate.Value.ToString("MM/dd/yyyy") & "'
AND StaffID = '" & lblTempStaffID.Text & "'"
ConnDB()
cmd = New MySqlCommand(sqL, conn)
dr = cmd.ExecuteReader
dgvReportInvoice.Rows.Clear()
dgvTotalQuantity.Rows.Clear()
totalManagerQuantity = 0
totalStaffQuantity = 0
totalProductionQuantity = 0
totalSalesManager = 0
totalSalesStaff = 0
totalSalesProduction = 0
Do While dr.Read = True
dgvReportInvoice.Rows.Add(dr("TDate"), dr("InvoiceNo"), dr("ManagerQuantity"), dr("StaffQuantity"), dr("ProductionQuantity"))
'Compute total manager, staff and production to Display
totalManagerQuantity += dr("ManagerQuantity")
totalStaffQuantity += dr("StaffQuantity")
totalProductionQuantity += dr("ProductionQuantity")
'Calculate the total amount per products
totalSalesManager += (dr("ManagerPrice") * dr("ManagerQuantity"))
totalSalesStaff += (dr("StaffPrice") * dr("StaffQuantity"))
totalSalesProduction += (dr("ProductionPrice") * dr("ProductionQuantity"))
Loop
但我的代碼有錯誤時處理的計算量(+ =)爲每下面,你會幫助我如何解決我的問題,什麼是正確的代碼,謝謝。
P.S.如果我的桌子上沒有數據,就會報錯。 http://imgur.com/a/2BIAd
問候,
請不要把「回答」,或在標題爲「解決」。在這裏,正確的做法是點擊解決問題的答案旁邊的複選標記。請參閱[Tour]瞭解更多信息,您可能還想閱讀[Ask] - 錯誤消息圖片的鏈接沒有得到很好的接收。你也應該使用SQL參數 - 這會簡化你的代碼。 – Plutonix