Access女士。 System.Data.OleDb.OleDbException:没有给出一个或多个必需参数的值

时间:2015-07-17 10:55:07

标签: c# sql ms-access ms-access-2007 oledb

我以这种方式创建SelectCommand:

OleDbCommand SelectCommand = new OleDbCommand(
    "SELECT * FROM TableName WHERE Date Between dt_begin = ? and dt_end = ?", connection);

SelectCommand.Parameters.Add("dt_begin", OleDbType.Date).Value = new DateTime(2015, 6, 1);
SelectCommand.Parameters.Add("dt_end", OleDbType.Date).Value = new DateTime(2015, 6, 31);

执行此命令后,我收到错误:

  

System.Data.OleDb.OleDbException(0x80040E10):没有给出一个值   或更多必需参数。

第一个参数获得01.06.2015。第二 - 2015年6月30日。不确定日期格式,但如果错了,我会得到相应的错误。日期是列名。

那么,有什么不对的?我的意思是,这里有两个参数,两者都是定义的。

2 个答案:

答案 0 :(得分:1)

试试这个:

"SELECT * FROM TableName WHERE Date Between ? and ?"

答案 1 :(得分:1)

您还可以创建完整的SQL字符串而不是参数。 等,

OleDbCommand SelectCommand = new OleDbCommand(
    "SELECT * FROM TableName WHERE Date Between '" + DateTime.Now.ToString("yyyy-MM-dd") + "' and '" + DateTime.Now.AddDays(1).ToString("yyyy-MM-dd") + "'", connection);