2013-12-02 3 views
1

Я использую следующий запрос для обновления записи в таблице Access, но я получаю синтаксическую ошибку?обновление записи в таблице Access

Как я могу это сделать?

string str = string.Format("UPDATE [MIX] SET[Stock quantity],[Retail price],[Original price])Values(?,?,?,?) WHERE [Brand name][email protected]"); 
OleDbCommand comd = new OleDbCommand(str, conn); 
comd.Parameters.AddWithValue("@brandname", comboBox3.Text); 
comd.Parameters.AddWithValue("Stock quantity", comboBox1.Text); 
comd.Parameters.AddWithValue("Retail price", comboBox4.Text); 
comd.Parameters.AddWithValue("Original price", comboBox5.Text); 
comd.ExecuteNonQuery(); 
+0

Какая ошибка? более того, это не то, что выглядит инструкция по обновлению. –

+6

Маленький совет для работы с Access, вы можете использовать конструктор для создания ваших запросов, а затем переключиться на представление SQL, чтобы увидеть сгенерированный SQL. Это хороший способ учиться. – JMK

ответ

3

Что вам нужно что-то больше, как это:

string str = 
     "UPDATE [MIX] SET " + 
     "[Stock quantity] = ?, " + 
     "[Retail price] = ?, " + 
     "[Original price] = ? " + 
     "WHERE [Brand name] = ?"; 
OleDbCommand comd = new OleDbCommand(str, conn); 
comd.Parameters.AddWithValue("?", comboBox1.Text); // [Stock quantity] 
comd.Parameters.AddWithValue("?", comboBox4.Text); // [Retail price] 
comd.Parameters.AddWithValue("?", comboBox5.Text); // [Original price] 
comd.Parameters.AddWithValue("?", comboBox3.Text); // [Brand name] 
comd.ExecuteNonQuery(); 

Обратите внимание, что параметры определяются в том же порядке, что они появляются в CommandText.

+0

Спасибо, брат. Это сработало! –

2

Это не то, что выглядит инструкция по обновлению. ваше утверждение похоже на инструкцию INSERT. посмотрите здесь, как обновление заявление отличается:

http://msdn.microsoft.com/en-us/library/office/bb221186(v=office.12).aspx

типичное заявление:

UPDATE [TableName] 
SET [FieldName] = @someValueParam 
WHERE [SomeFieldName] = [someValue] 

запомнить параметризировать ваши вопросы также.

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