年を使用して datagridview に関するレポートを表示するための検索ボタンが 1 つあります。そのため、データベース内に年 (2012 など) に対応する項目がさらにある場合、datgridview を埋めることによって上記の例外がスローされ、試行時に問題が発生します。 Crystal Report に接続すると、エラーが表示されます...この問題に直面するのは、データベースにもっと多くのレコードがある場合 (正確には 100 行以上) だけであることを思い出してください...データベースからいくつかの行を削除すると、正常に動作します。 .テーブルを作成し、そのテーブルをデータセットに追加し、そのテーブル1をクリスタルレポートのデータソースとして割り当てました
Public Class crystalform1
Dim r As DataRow
Dim t As DataTable
Dim ds1 As New DataSet1()
Sub New()
' This call is required by the designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call.
t = ds1.Tables.Add("DataTable1")
t.Columns.Add("invoiceno", Type.GetType("System.Int32"))
t.Columns.Add("customer_name", Type.GetType("System.String"))
t.Columns.Add("customer_phonenumber", Type.GetType("System.Int32"))
t.Columns.Add("date", Type.GetType("System.String"))
t.Columns.Add("product_item", Type.GetType("System.String"))
t.Columns.Add("bookno", Type.GetType("System.Int32"))
t.Columns.Add("serialno", Type.GetType("System.Int32"))
t.Columns.Add("price", Type.GetType("System.Single"))
t.Columns.Add("quantity", Type.GetType("System.Int32"))
t.Columns.Add("discount", Type.GetType("System.Int32"))
t.Columns.Add("paymentby", Type.GetType("System.String"))
t.Columns.Add("checkno", Type.GetType("System.Int32"))
t.Columns.Add("checkdate", Type.GetType(" System.String"))
t.Columns.Add("total", Type.GetType("System.Single"))
t.Columns.Add("totalamount", Type.GetType("System.Single"))
End Sub
Sub formcall(ByVal invoiceno As Integer, ByVal date1 As Date, ByVal customername As String, ByVal customerphone As Integer, ByVal product As String, ByVal bookno As Integer, ByVal serialno As Integer, ByVal price As Single, ByVal quantity As Integer, ByVal discount As Integer, ByVal payment As String, ByVal checkno As Integer, ByVal checkdate As String, ByVal total As Single, ByVal totalamount As Single)
' This call is required by the designer.
If IsDate(checkdate) Then
CType(checkdate, Date).ToShortDateString()
End If
r = t.NewRow()
r("invoiceno") = invoiceno
r("customer_Name") = customername
r("customer_Phonenumber") = customerphone
r("date") = date1.ToShortDateString
r("product_item") = product
r("bookNo") = bookno
r("serialNo") = serialno
r("price") = price
r("quantity") = quantity
r("discount") = discount
r("paymentby") = payment
r("checkno") = checkno
r("checkdate") = checkdate
r("total") = total
r("totalamount") = totalamount
t.Rows.Add(r)
Dim objRpt As New CrystalReport2
Try
objRpt.SetDataSource(ds1.Tables(1))
CrystalReportViewer1.ReportSource = objRpt /*exception is showing here*/
Catch ex As Exception
MsgBox("Report Error", ex.Message())
End Try
End Sub