0
我有一個vb.net代碼,如下所示:我正在研究vb.net windows窗體,試圖執行包含3個子報告的水晶報告..我給出了我這樣的代碼:在執行水晶報告時,vb .net中的索引超出範圍
Dim locid As Integer = RecordID("Locid", "Location_tbl", "LocName", CmbLocations.Text)
Dim ptime As Integer = TxtTime.Text
'ViolatedRequested
Dim cmd23 As New SqlCommand("IBS_Delivarysummaryviolatedrequested", con.connect)
cmd23.CommandType = CommandType.StoredProcedure
cmd23.Parameters.Add("@locid", SqlDbType.Int).Value = locid
cmd23.Parameters.Add("@time", SqlDbType.Int).Value = ptime
da.SelectCommand = cmd23
da.Fill(ds)
Dim rpt As New DelivarySummerystatuswiserpt
' If (ds.Tables(0).Rows.Count > 0) Then
rpt.SetDataSource(ds.Tables(0))
' CrystalReportViewer1.ReportSource = rpt
' End If
'requested
Dim cmdreqstd As New SqlCommand("IBS_Delivarysummaryrequested", con.connect)
cmdreqstd.CommandType = CommandType.StoredProcedure
cmdreqstd.Parameters.Add("@locid", SqlDbType.Int).Value = locid
cmdreqstd.Parameters.Add("@time", SqlDbType.Int).Value = ptime
da.SelectCommand = cmdreqstd
da.Fill(ds1)
rpt.Subreports(1).SetDataSource(ds1.Tables(0))
' CrystalReportViewer1.ReportSource = rpt
'' Parked
Dim cmdparked As New SqlCommand("IBS_Delivarysummaryparked", con.connect)
cmdparked.CommandType = CommandType.StoredProcedure
cmdparked.Parameters.Add("@locid", SqlDbType.Int).Value = locid
da.SelectCommand = cmdparked
da.Fill(ds2)
rpt.Subreports(2).SetDataSource(ds2.Tables(0))
' CrystalReportViewer1.ReportSource = rpt
'violated Detaild
Dim cmdvolatedDetaild As New SqlCommand("IBS_DelivarysummaryviolateDetaild", con.connect)
cmdvolatedDetaild.CommandType = CommandType.StoredProcedure
cmdvolatedDetaild.Parameters.Add("@locid", SqlDbType.Int).Value = locid
cmdvolatedDetaild.Parameters.Add("@time", SqlDbType.Int).Value = ptime
da.SelectCommand = cmdvolatedDetaild
da.Fill(ds3)
If (ds3.Tables(0).Rows.Count > 0) Then
rpt.Subreports(3).SetDataSource(ds3.Tables(0))
CrystalReportViewer1.ReportSource = rpt
End If
在執行我得到的錯誤在這行rpt.Subreports(3).SetDataSource(ds3.Tables(0))
收到錯誤是這樣的: 指數超出範圍。必須是非負數且小於集合的大小。 參數名:指數 什麼是錯我的代碼,,如果有知道的請幫我找出