2017-01-03 3 views
2

Ich habe 2 datetimepickers in meinem Programm. Eine davon ist die Angabe von from und die andere Angabe für to. Ich versuche, Werte zwischen von und nach zu bekommen. Ich habe Werte von 2 datetimepicker zwischen Abfrage übergeben, aber iam nur Werte zwischen einem Monat Datum erhalten. Wenn ich aus dem Datum eines Monats wähle und aus einem anderen Datum wähle, werden keine Daten angezeigt.Werte zwischen von und bis Datum von datetimepicker

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

versuchen, das Datum als DateTime-Objekt anstelle von "Text" übergeben –

+0

können Sie helfen, das zu erklären. – Abhijith

+0

als un-Glück sagte, können Sie folgendermaßen tun: 'dateTimePicker_FromSaleReport.Value.ToString()'. Sehen Sie sich die [DateTimePicker.Value-Eigenschaft] an (https://msdn.microsoft.com/en-us/library/system.windows.forms.datetimepicker.value (v = vs.110) .aspx). –

Antwort

0

Sie haben das Datetime-Objekt stattdessen für Text zu übergeben, so vor allem Sie haben Datetime-Wert aus dem Datepicker, bekommen und dann mit, dass vorgehen:

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 ; 

Hinweis: Bitte achten Sie darauf, über den Typ der Spalte in der Datenbank, sollte es DateTime sein, um den Vergleich durchzuführen.

+0

Noch kann ich nur Werte zwischen Daten innerhalb eines Monats erhalten. Ich habe diese bill_Date Spalte in der Datenbank, die Bill-Datum vom datetipickers Text speichert. – Abhijith

+0

Bitte kreuzen Sie den Typ dieser Spalte in der Datenbank –

+0

varchar .. Ich denke, ich sollte Datum von Datetime Picker in die Datenbank als ein Datum Objekt anstelle von datetimepicker Text speichern? – Abhijith

Verwandte Themen