这是我的代码,我在INSERT statement
中收到语法错误:
string strSql = "INSERT INTO Responses (OCR, DeadlineDate, OCR Title) VALUES ('"+textBox5.Text+"','"+textBox7.Text+"', '"+textBox6.Text+"')";
OleDbConnection newConn = new OleDbConnection(strProvider);
OleDbCommand dbCmd = new OleDbCommand(strSql, newConn);
newConn.Open();
dbCmd.ExecuteNonQuery();
任何想法?
答案 0 :(得分:9)
列名OCR Title
无效,您必须使用[]
之类的[OCR Title]
转义它:
INSERT INTO Responses (OCR, DeadlineDate, [OCR Title]) VALUES( ...
另外,请尝试使用参数化查询,而不是连接值:
string strSql = "INSERT INTO Responses (OCR, DeadlineDate, [OCR Title]) VALUES (?, ?, ?)";
using (OleDbConnection newConn = new OleDbConnection(strProvider))
{
using (OleDbCommand dbCmd = new OleDbCommand(strSql, newConn))
{
dbCmd.CommandType = CommandType.Text;
dbCmd.Parameters.AddWithValue("OCR", textBox5.Text);
dbCmd.Parameters.AddWithValue("DeadlineDate", textBox7.Text);
dbCmd.Parameters.AddWithValue("[OCR Title]", textBox6.Text);
newConn .Open();
dbCmd.ExecuteNonQuery();
}
}
答案 1 :(得分:0)
我猜语法错误与c#无关,而与SQL语句无关。
也许您需要对textBoxes值和“OCR Title”表名的文本限定符进行转义。