如何使用datepicker c#在两个日期范围之间选择数据

时间:2014-04-10 00:33:28

标签: c# sql datepicker

使用Visual Studio编码C#我有一个Windows窗体并有两个日期时间选择器,我如何选择两个不同的日期范围并从我的SQL数据库中检索数据。这就是我到目前为止所做的......

       SqlConnection ssl = new SqlConnection();
       ssl.ConnectionString = @"connection goes ";
       ssl.Open();
       var a = dateTimePicker1.Value.ToString("yyyy-MM-dd");
       var b = dateTimePicker2.Value.ToString("yyyy-MM-dd");
       SqlDataAdapter ad = new SqlDataAdapter("SELECT name FROM DATABASENAME WHERE    columnname >='" + a + "' AND modified_time <= '"+ b +"'", ssl);

        DataTable dt = new DataTable();
       ad.Fill(dt);
       dataGridView1.DataSource = dt;  

1 个答案:

答案 0 :(得分:2)

执行此操作时:

"... >= '" + a + "' AND ..."

您正在创建一个包含日期值的字符串文字。数据库不会把它当作日期,如果查询执行它就不会做你想做的事。

相反,参数化您的查询,这是传递日期(或任何其他值)的正确方法:

SqlDataAdapter ad =
    new SqlDataAdapter("SELECT name FROM DATABASENAME WHERE columnname >= @Date1 AND modified_time <= @Date2", ssl);

ad.SelectCommand.Parameters.AddWithValue("@Date1", dateTimePicker1.Value);
ad.SelectCommand.Parameters.AddWithValue("@Date2", dateTimePicker2.Value);