ACCESS数据库查询

时间:2016-03-22 13:37:58

标签: c# ms-access

我想在特定日期之间收到价值。但是我的代码给出了错误

cmd.CommandText = "SELECT * FROM gider WHERE [tarih] Between #" + startdate + "# and #" + enddate+ "#";

我收到了以下错误

  

System.Data.dll中出现'System.Data.OleDb.OleDbException'类型的异常,但未在用户代码中处理

     

附加信息:查询表达式中的日期语法错误'[tarih]介于#22.03.2006 15:31:48#和#22.03.2016 15:31:48'。

我搜索了很多,但所有代码示例都像我的。我找不到解决方案。

非常感谢你的帮助。

2 个答案:

答案 0 :(得分:3)

您应该在查询中使用OleDbParameter。它会同时修复2个问题。

  1. 它会将日期转换为正确的查询格式
  2. 它会阻止SQL注入。
  3. 示例:

    cmd.CommandText = "SELECT * FROM gider WHERE [tarih] Between @startdate and @enddate";
    cmd.Parameters.Add("@startdate", OleDbType.Date).Value = startdate;
    cmd.Parameters.Add("@enddate", OleDbType.Date).Value = enddate;
    

答案 1 :(得分:-1)

试试这个: 1:

cmd.CommandText = "SELECT * FROM gider WHERE [tarih] Between '" + startdate + "' and '" + enddate+ "'";
  1. 尝试将您的日期格式设为yyyy-mm-dd