クエリを実行する VB.net プログラムがあります。クエリは、一度に数万のレコードをプルします。現在、レポートビューアーにレポートするクエリがあり、データセットを .csv ファイルにエクスポートするフォームに 2 番目のボタンがあります。これはすべて宣伝どおりに機能しますが、すべてのレコードが表示されるわけではありません。データセットに情報を保存せずにクエリを実行すると、1,000 を超える結果が得られます。
プログラムを実行すると、568 の結果しか得られません。プログラム内で「Fill」コマンドを使用すると、この情報が大きすぎると思います。レポートビューアで、または「エクスポート」ボタンが選択されたときに、データセット内のすべてのレコードを表示するように変更するにはどうすればよいですか。
これが私のクエリです:
SELECT Invoice_Tb.Customer_First_Name AS firstname, Invoice_Tb.Customer_Last_Name AS lastname, Invoice_Tb.Customer_Address AS add1, Invoice_Tb.City,
Invoice_Tb.Customer_State AS State, LEFT(Invoice_Tb.ZIP_Code, 5) AS ZIP, Invoice_Tb.Customer_Email_Address AS [Email Address],
Invoice_Tb.Vehicle_Mileage AS [Vehicle Mileage], Invoice_Tb.Invoice_Date AS [Date Of Service], Invoice_Tb.Store_Number, @startdate AS Start_Date,
@enddate AS End_Date
FROM Invoice_Detail_Tb INNER JOIN
Invoice_Tb ON Invoice_Detail_Tb.Invoice_Number = Invoice_Tb.Invoice_Number AND Invoice_Detail_Tb.Invoice_Date = Invoice_Tb.Invoice_Date
WHERE (Invoice_Detail_Tb.Store_Category_Code = 'FS') AND (Invoice_Tb.Invoice_Date BETWEEN CONVERT(DATETIME, @startdate, 102) AND CONVERT(Datetime,
@enddate, 102)) AND (Invoice_Tb.Reminder_Mail_Flag = 'Y')
結果をレポート ビューアーにプルするためのボタン コードを次に示します。
Me.Invoice_TbTableAdapter.Fill(Me.DataDeliveryServiceDataSet.Invoice_Tb, startdatepicker.Value, enddatepicker.Value)
Me.ReportViewer1.RefreshReport()
これがcsvボタンコードへの私の「エクスポート」です:
Dim str As New StringBuilder
For Each dr As DataRow In Me.DataDeliveryServiceDataSet.Invoice_Tb
For Each field As Object In dr.ItemArray
str.Append(field.ToString & ",")
Next
str.Replace(",", vbNewLine, str.Length - 1, 1)
Next
Try
My.Computer.FileSystem.WriteAllText("C:\temp\testcsv.csv", str.ToString, False)
Catch ex As Exception
MessageBox.Show("Write Error")
End Try
すべてのレコードを表示する方法を教えてください。