Если одно из ваших текстовых полей содержит текст с одинарной кавычкой, это создаст недопустимый оператор sql.
Как указали другие, вы можете использовать параметризованные запросы.Тем не менее, я покажу вам строковую версию.
Она использует эту вспомогательную функцию
private string SqlStr(string s)
{
if (String.IsNullOrEmpty(s)) {
return "NULL";
}
return "'" + s.Replace("'", "''") + "'";
}
Попробуйте:
string sql = String.Format(
"UPDATE ContactList SET Name={0}, Email={1}, Mobile={2}, Country={3}, City={4}",
SqlStr(CBM_textbox1.Text),
SqlStr(CBM_textbox2.Text),
SqlStr(CBM_textbox3.Text),
SqlStr(CBM_textbox4.Text),
SqlStr(CBM_textbox5.Text)
);
В вашем примере sql есть лишние ")"в конце и поскольку отсутствует оператор WHERE, он обновит всю таблицу!Вы должны добавить что-то вроде этого:
"... WHERE id=77"
Или, может быть, вы пытались добавить запись?В этом случае вы должны были использовать что-то вроде:
INSERT INTO ContactList (Name, Email, City) VALUES ('John','jd@xx.com','LA')