如何使用datetimepicker过滤数据库 [英] How to filter database with datetimepicker

查看:114
本文介绍了如何使用datetimepicker过滤数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在数据库中有一个表格,其中包含colomn Date(日期时间格式),格式为2015年4月2日1:12:15 PM。我通过两个datetimepickes用这样的语句选择数据:

 SqlDataAdapter ErrorListTableAdapter = new SqlDataAdapter(SELECT * FROM ErrorList WHERE(Date BETWEEN'+ Convert.ToDateTime(FromDateTimePicker.Value。 ToString(d / M / yyyy h:mm:ss tt))+'AND'+ Convert.ToDateTime(ToDateTimePicker.Value.ToString(d / M / yyyy h:mm:ss tt))+ '),conn); 



但是没有结果。这里有什么问题?

解决方案

正如Rohan Leuva所说 - 使用参数化查询。不只是为了安全地从SQL注入,而是因为它们为这样的问题提供了简单的解决方案。



例如:

 SqlDataAdapter ErrorListTableAdapter = new SqlDataAdapter(); 
ErrorListTableAdapter.SelectCommand =
new SqlCommand( SELECT * FROM ErrorList WHERE(Date BETWEEN @ Date1 AND @ Date2)
conn);
ErrorListTableAdapter.SelectCommand.Parameters。添加 @ Date1,SqlDbType。日期)。值
= FromDateTimePicker.Value。日期< /跨度>;
ErrorListTableAdapter.SelectCommand.Parameters。添加 @ Date2,SqlDbType。日期)。值
= ToDateTimePicker.Value。日期< /跨度>;


I have a table in database with colomn Date (datetime format) that has format "4/2/2015 1:12:15 PM". I select data by two datetimepickes with such statement:

SqlDataAdapter ErrorListTableAdapter = new SqlDataAdapter("SELECT * FROM  ErrorList WHERE (Date BETWEEN '" + Convert.ToDateTime(FromDateTimePicker.Value.ToString("d/M/yyyy h:mm:ss tt")) + "' AND ' " + Convert.ToDateTime(ToDateTimePicker.Value.ToString("d/M/yyyy h:mm:ss tt")) + "')", conn);


But there is no result. What is wrong here?

解决方案

As Rohan Leuva said - use parameterized queries. Not just to be safe from SQL injection, but because they give easy solutions to problems like this.

For example:

SqlDataAdapter ErrorListTableAdapter = new SqlDataAdapter();
ErrorListTableAdapter.SelectCommand = 
   new SqlCommand( "SELECT * FROM  ErrorList WHERE (Date BETWEEN @Date1 AND @Date2)", 
   conn);
ErrorListTableAdapter.SelectCommand.Parameters.Add("@Date1", SqlDbType.Date).Value 
    = FromDateTimePicker.Value.Date;
ErrorListTableAdapter.SelectCommand.Parameters.Add("@Date2", SqlDbType.Date).Value 
    = ToDateTimePicker.Value.Date;


这篇关于如何使用datetimepicker过滤数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆