У меня есть БД доступа с таблицей (DV1), которая имеет столбцы [ID TIME CODE REASON]. Я просто пытаюсь обновить таблицу. Я продолжаю получать ошибку sysax INSERT INTO. Все, что я вижу, выглядит прекрасно. Я все пробовал. Я открываю базу данных, затем получаю сообщение об ошибке. Есть предположения?Добавление в Access DB с INSERT INTO?
private void WRTODB_Click(object sender, EventArgs e)
{
OleDbConnection machStopDB = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source="[email protected]"C:\Users\sgarner\Google Drive\Visual Studio 2012\Timer test\WRITE TO DB\WRITE TO DB\Machine_Stop.accdb");
machStopDB.Open();
string str = "INSERT INTO DV1(TIME,CODE,REASON)" +
"VALUES(('" + DateTime.Now + "'),('" + textBox1.Text + "'),('" + textBox2.Text + "'))";
OleDbCommand insertCmd = new OleDbCommand(str, machStopDB);
insertCmd.ExecuteNonQuery();
machStopDB.Close();
}
Это всего лишь тестовая программа, с которой я работаю.
Попробуйте использовать параметры http://msdn.microsoft.com/en-GB/library/system.data.oledb.oledbcommand. parameters.aspx, чтобы сделать ваш код более читаемым – Yahya
@Yahya и, возможно, что более важно, менее уязвим для SQL-инъекции – GolfWolf
Возможно, я ошибаюсь, но почему у вас есть скобки вокруг каждого значения? Думаю, достаточно одной кавычки. – Yahya