신입 회원을 도와주세요. 저장 프로 시저에서 지난 2 년간의 세일즈 통계를 읽고, asp.net 사이트에 표시하면 정상적으로 작동합니다.
자주 팔리지 않는 제품에 문제가 있습니다. 어떤 달에 판매가 없는지 파악해야합니다. 이 경우 테이블 셀에 0을 넣고 데이터 집합의 다음 행으로 이동해야합니다.
각 달에 대한 데이터가없는 경우 각각은 속임수를 쓰지 않습니다.
질문 : 다음 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
감사합니다. 나는 나의 절차를 볼 것이다. 이것은 온라인 쿼리가 될 것이므로 고정 테이블을 사용할 수 없습니다. 마지막으로 24 개가있는 임시 테이블을 만들고 SQL의 null 값에 COALESCE를 사용할 수 있습니다. 나는 지금 당장 퇴근해야한다. 좋은 주말 보내라! – Sami