2016-05-27 6 views
0

ReportViewerの特定の日付を検索するボタンを使用して、データの特定の日付を表示します。ReportViewerのパラメータとしてのDateTimePicker

private void button1_Click(object sender, EventArgs e) 
    { 

     this.DataTable1TableAdapter.Fill(this.DataReport.DataTable1 + dateTimePicker2.Value()); 

     this.reportViewer1.RefreshReport(); 
    } 

これはDataAdapterで使用したクエリです。

SELECT  Customer.CID, Customer.FirstName, Customer.LastName, Booking.VehicleNumber, Customer.MemberType, Customer.Points, Booking.[Time], Booking.[Date] 
FROM  (Booking INNER JOIN 
      Customer ON Booking.CID = Customer.CID) 
WHERE  Booking.[Date] = (dateTimePicker2) 

上記のコードは、ボタンの下に「dateTimePicker2.Value」が機能しないことを示しています。私はテキストとして使用しようとしましたが、それでもエラーが表示されます。私はそれを何に変換すべきですか、または文字列で追加すべきですか?

+0

疲れたラッピングdateTimePicker2.Valueを引用符で囲んで文字列を表しますか? –

+0

引用してみましょう。 – Minial

+0

'this.DataTable1TableAdapter.Fill(this.DataReport.DataTable1、" dateTimePicker2 ".Value());これは何か? – Minial

答えて

0

DataAdapterのパラメータを日付に使用します。これは、System.Data.OleDbが使用されていることを前提としています。

var cmd = new OleDbCommand(@" 
    SELECT Customer.CID, Customer.FirstName, Customer.LastName, Booking.VehicleNumber, Customer.MemberType, Customer.Points, Booking.[Time], Booking.[Date] 
    FROM (Booking INNER JOIN 
      Customer ON Booking.CID = Customer.CID) 
    WHERE Booking.[Date] = @booking_date"); 
cmd.Parameters.Add("@booking_date", OleDbType.DBDate).Value = dateTimePicker2.Value; 
DataTable1TableAdapter.SelectCommand = cmd; 
//{...} 
this.DataTable1TableAdapter.Fill(this.DataReport.DataTable1); 
this.reportViewer1.RefreshReport(); 
関連する問題