2010-06-15 4 views
0
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();  
} 

Почему параметр datum не получает значение даты? (Значение по меньшей мере, одного комплексного параметра не определено)Параметр не имеет значения

ответ

4

Из документов для OleDbCommand.Parameters

В .NET Поставщик OLE DB не поддерживает именованные параметры для передачи параметров в SQL заявления или его хранимую процедуру, вызываемую OleDbCommand, когда CommandType установлен в Text. В этом случае необходимо использовать знак вопроса (?).

Попробуйте использовать позиционный подход, в основном.

+0

Вы имеете в виду только что: Где datum = # "DateTime.Now() +" # "; – Simon

+0

@Simon: Нет, я имею в виду использование заполнителя"? ", Как описано в цитируемом параграфе. для более полного примера. –

+0

Хорошо ... Но я не могу заставить его работать. Как это использовать в моем случае (указать параметр значение даты и сравнить его с датой в базе данных? – Simon

0

Если это вырезано прямо из вашего кода, это может привести к ошибке, поскольку для предложения WHERE требуется пространство в вашей строке запроса.

+0

Неа. и что – Simon

Смежные вопросы