这是我的代码,我在 INSERT 语句
中遇到语法错误:
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();
有什么想法吗?
最佳答案
列名 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();
}
}
关于C# 语法错误 - INSERT INTO 语句。 Access 数据库。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21022439/