2017-01-03 4 views
2

私のプログラムには2つのdatetimepickersがあります。 1つはfromを指定し、もう1つはtoを指定することです。 Iamはfromとtoの間で値を取得しようとしています。私はクエリの間に2 datetimepickerの値を渡したが、私は月の日付の間だけの値を取得しています。もし私が1ヶ月の日付から選択し、別の日付から選択すると、データが表示されません。datetimepickerからfromとto dateの間の値の取得

テキストのための代わりにDateTimeオブジェクトを渡すために持っているので、あなたは、日付ピッカーからDateTime値を取得する必要があり、その後、それと進み、すべての最初の
SqlDataAdapter da3 = new SqlDataAdapter("SELECT Name from Billing WHERE Bill_Date Between @From AND @To", con); 
da3.SelectCommand.Parameters.AddWithValue("@From", dateTimePicker_FromSaleReport.Text); 
da3.SelectCommand.Parameters.AddWithValue("@To", dateTimePicker_ToSaleReport.Text); 
dataTable dt3 = new DataTable(); 
da.Fill(dt); 
dgv_FromToSaleReport.DataSource = dt3; 
+2

「テキスト」の代わりにDateTimeオブジェクトとして日付を渡そうとすると、 –

+0

その説明に役立つでしょうか。 – Abhijith

+0

が幸運なことに言ったように、あなたは 'dateTimePicker_FromSaleReport.Value.ToString()'のようにすることができます。 [DateTimePicker.Valueプロパティ](https://msdn.microsoft.com/en-us/library/system.windows.forms.datetimepicker.value(v = vs.110).aspx)を参照してください。 –

答えて

0

DateTime fromDate, toDate; 

DateTime.TryParse(dateTimePicker_FromSaleReport.Text, out fromDate); 
DateTime.TryParse(dateTimePicker_ToSaleReport.Text, out toDate); 

// use DateTime.TryparseExtract if you know the format of input date 

SqlDataAdapter filterAdapter = new SqlDataAdapter("SELECT Name from Billing WHERE Bill_Date Between @From AND @To", con); 
filterAdapter.SelectCommand.Parameters.Add("@From",SqlDbType.DateTime).value = fromDate; 
filterAdapter.SelectCommand.Parameters.Add("@To", SqlDbType.DateTime).value = toDate; 

DataTable filteredTable = new DataTable(); 
filterAdapter.Fill(filteredTable); 
dgv_FromToSaleReport.DataSource = filteredTable ; 

注:必ずしてください、データベース内の列の型については、比較を実行するためにはDateTimeにする必要があります。

+0

まだ1ヶ月以内に日付間の値しか取得できません。私はdatetipickersテキストからBillの日付を保存するデータベースのbill_Date列を持っています。 – Abhijith

+0

データベースのその列のタイプを確認してください –

+0

varchar ..私はdatetimepickerテキストではなく、日付オブジェクトとしてデータベースにdatetimeピッカーから日付を保存すると思いますか? – Abhijith

関連する問題