2017-01-03 43 views
2

我的程序中有2個datetimepickers。一種是從其中指定而另一種是指定爲。 Iam試圖獲得from和to之間的值。我將兩個datetimepicker的值傳遞給查詢,但iam僅獲取月份日期之間的值。如果我從一個月的日期中選擇,並選擇從另一個日期不會顯示數據。從datetimepicker獲取from和date之間的值

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

嘗試將Date作爲日期時間對象傳遞,而不是'文本' –

+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對象而不是爲文本,所以首先你必須從DatePicker的獲取日期時間值,然後繼續與的:

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

我仍然只能在一個月內的日期之間獲取值。我在數據庫中有那個bill_Date列,它可以保存來自datetipickers文本的Bill日期。 – Abhijith

+0

請交叉檢查數據庫中的該列的類型 –

+0

varchar ..我想我應該保存日期從datetime選擇器到數據庫作爲日期對象而不是datetimepicker文本? – Abhijith

相關問題