首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ACCESS数据库查询

ACCESS数据库查询
EN

Stack Overflow用户
提问于 2016-03-22 13:37:57
回答 2查看 43关注 0票数 0

我正在尝试接收特定日期之间的值。但是我的代码出错了

代码语言:javascript
复制
cmd.CommandText = "SELECT * FROM gider WHERE [tarih] Between #" + startdate + "# and #" + enddate+ "#";

我会跟着错误走

“System.Data.OleDb.OleDbException”类型的异常发生在System.Data.dll中,但未在用户代码中处理 附加信息:查询表达式'tarih‘( #22.03.2006 15:31:48#和#22.03.2016 15:31:48)中的日期语法错误。

我搜索了很多,但是所有的代码示例看起来都是我的。我找不到解决办法。

非常感谢你的帮助。

EN

回答 2

Stack Overflow用户

发布于 2016-03-22 13:51:50

您应该在查询中使用OleDbParameter。它将同时解决两个问题。

  1. 它将负责将日期转换为查询的正确格式。
  2. 它将防止SQL注入。

示例:

代码语言:javascript
复制
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;
票数 3
EN

Stack Overflow用户

发布于 2016-03-22 13:46:26

试一下: 1:

代码语言:javascript
复制
cmd.CommandText = "SELECT * FROM gider WHERE [tarih] Between '" + startdate + "' and '" + enddate+ "'";
  1. 尝试将您的日期格式化为yyyy-mm-dd
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36155923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档