請幫助新手。 我正在閱讀存儲過程的最近兩年的銷售數據,顯示在asp.net網站上,它工作得很好。
問題在於不經常銷售的產品,我需要弄清楚哪些月份沒有任何銷售。在這種情況下,我需要在表格單元中放置零並移動到數據集中的下一行。
對於每個月沒有數據的情況下,每個人都不會這麼做。
問題是,如何移動到下一個sqlrow以及如何測試何時讀取了所有行?數據集和不存在的行
sqlSelect = "EXECUTE dealer_sales_statistics @productID = '" & strProdID.Value & "'"
Dim sqlConn As New SqlConnection(sqlConnStr)
Dim sqlRow As DataRow
sqlConn.Open()
Dim sqlAdapt As New SqlDataAdapter(sqlSelect,sqlConn)
Dim sqlDataSet As New DataSet()
sqlAdapt.Fill(sqlDataSet, "sales_statistics")
Do Until sqlRow.EOF
If intCounter < 12 Then
' arrMonth contains last 24 months, e.g. "12_2009" to "1_2008"'
' stored procedure can return values for any month between that range'
' amount of returned values (DataSet sqlRows) can vary from 0 to 24'
If arrMonth(intCounter) = sqlRow("month") & "_" & sqlRow("year") Then
strLine_1 &= "<td>" & CInt(sqlRow("qty")) & "</td>"
arrSumma_1 = arrSumma_1 + CInt(sqlRow("qty"))
sqlRow.MoveNext
Else
strLine_1 &= "<td class='cell'>0</td>"
End If
Else
'using intCouter and same code to separate sales in 12 month periods'
If arrMonth(intCounter) = sqlRow("month") & "_" & sqlRow("year") Then
strLine_2 &= "<td>" & CInt(sqlRow("qty")) & "</td>"
arrSumma_2 = arrSumma_2 + CInt(sqlRow("qty"))
sqlRow.MoveNext
Else
strLine_2 &= "<td>0</td>"
End If
End If
intCounter = intCounter + 1
Loop
+1好的建議 – JonH 2009-12-18 13:56:20
謝謝馬克快速回答!我會看看我的程序。這將是聯機查詢,所以我不能使用固定表。我可以創建臨時表,保存最後24個飛蛾,並在sql中使用COALESCE作爲空值。我現在不得不離開辦公室......週末愉快! – Sami 2009-12-18 14:26:42