2

I have 2 datetimepickers in my program. One is to specify from and other is to specify to. Iam trying to get values between from and to. I passed values of 2 datetimepicker to between query but iam getting only values between a months date. if i select from date of a month and select to from another date is wont display datas.

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;
sujith karivelil
  • 27,818
  • 6
  • 51
  • 82
Abhijith
  • 71
  • 8
  • 2
    try to pass the date as DateTime Object instead for `Text` – sujith karivelil Jan 03 '17 at 05:16
  • can you help explaining that. – Abhijith Jan 03 '17 at 05:17
  • as un-lucky said, you can do like this: `dateTimePicker_FromSaleReport.Value.ToString()`. Take a look at [DateTimePicker.Value Property](https://msdn.microsoft.com/en-us/library/system.windows.forms.datetimepicker.value(v=vs.110).aspx). – Rahul Jan 03 '17 at 05:23

1 Answers1

0

You have to pass the DateTime object instead for Text, so first of all you have to get DateTime value from the DatePicker, and then proceed with that:

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 ;

Note : please be sure about the type of column in the database, It should be DateTime in order to performs the comparison.

sujith karivelil
  • 27,818
  • 6
  • 51
  • 82