如何使用DateTimePicker(MM-yyyy)搜索SQL Server日期(dd-MM-yyyy)?

时间:2019-04-06 14:14:36

标签: c# sql-server

我有一个带有日期(dd-MM-yyyy)的数据库,和一个带有DateTimePicker(MM-yyyy)的Winforms。

当我在DateTimePicker中选择一个日期时,如何在数据库中搜索?

var sqlcomm = new SqlCommand($"SELECT SUM(sales) FROM table_name WHERE date = '{dateTimePicker1.Value.ToString("yyyy-mmm")}'", conn);

错误:

  

操作符类型冲突:日期与int不兼容

1 个答案:

答案 0 :(得分:1)

使用 PARAMETERS (参数)-始终应该使用!这些阻止了SQL注入,并且使指定各种类型的各种数据变得更加容易。

类似这样的东西:

string query = "SELECT SUM(sales) FROM table_name WHERE date = @someDate;";

SqlCommand sqlcomm = new SqlCommand(query, conn);
sqlcomm.Parameters.Add("@someDate", SqlDbType.Date).Value = dateTimePicker1.Value;

简洁,安全的代码-无需弄乱日期格式并将所有内容转换为字符串,无需弄清楚要使用多少个单引号或双引号-只需使用简洁,正确的ADO.NET代码即可应该是。