2013-04-13 2 views
1

У меня есть OleDbConnection для подключения к базе данных доступа. Но когда я выполняю запрос, OleDbCommand бросает исключение, говоря, что команда недействительна. Я абсолютно уверен, что команда действительна.OleDbCommand исключение исключения из допустимого текста команды

string ret = ""; 

string command = "UPDATE tblUser set username = ?, password = ? where ID = 1"; 
dbConn.Open(); 

using (var dbCommand = dbConn.CreateCommand()) 
{ 
    dbCommand.Connection = dbConn; 
    dbCommand.CommandText = command; 
    dbCommand.Parameters.AddWithValue("?", username); 
    dbCommand.Parameters.AddWithValue("?", password); 

    int temp = dbCommand.ExecuteNonQuery(); 
    if (temp > 0) 
     ret = "sukses"; 
    dbConn.Close();     
} 
return ret; 

Однако если код выше выполняется, это бросить исключение говоря Syntax error in UPDATE statement. в dbCommand.ExecuteNonQuery(). Как справиться с этой проблемой?

+0

Возможно, имя пользователя и пароль являются зарезервированными словами? Также не обязательно добавлять параметры с именем? потому что OleDbParameters являются позиционными, а не названными. В b4 все примеры кода с использованием именованных параметров. –

ответ

2

вам нужно бежать PASSWORD со скобками, так как он является зарезервированным ключевым словом,

UPDATE tblUser set username = ?, [password] = ? where ID = 1 
+1

Lol, мне нужно 2 часа .. Я соглашусь, когда смогу .. –

+0

приветствую ': D' –

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