我以这种方式创建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日。不确定日期格式,但如果错了,我会得到相应的错误。日期是列名。
那么,有什么不对的?我的意思是,这里有两个参数,两者都是定义的。
答案 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);