参数没有价值

时间:2010-06-15 12:25:20

标签: c# ms-access datetime select parameters

string queryString = "SELECT SUM(skupaj_kalorij)as Skupaj_Kalorij  "
                    + "FROM (obroki_save LEFT JOIN users ON obroki_save.ID_uporabnika=users.ID)"
                    + "WHERE users.ID= " + a.ToString() + " AND obroki_save.datum =?";


using (OleDbCommand cmd = new OleDbCommand(queryString,database))                                    
{
    cmd.Parameters.Add("@datum", OleDbType.Char).Value = DateTime.Now.ToShortDateString();    
}

为什么参数数据不能获得日期值? (至少一个复杂参数的值尚未确定)

2 个答案:

答案 0 :(得分:4)

来自OleDbCommand.Parameters

的文档
  

OLE DB .NET提供程序不支持将参数传递给SQL的命名参数   当CommandType设置为Text时,由OleDbCommand调用的语句或存储过程。   在这种情况下,必须使用问号(?)占位符。

基本上尝试使用位置方法。

答案 1 :(得分:0)

如果直接从你的代码中删除那么它可能会出错,因为它在WHERE子句之前需要在queryString中有一个空格。