C#语法错误 - INSERT INTO语句.访问数据库.

Jos*_*F91 1 c# syntax ms-access insert sql-insert

这是我的代码,我在我的INSERT statementfor中遇到语法错误:

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();
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Mah*_*mal 9

列名OCR Title无效,你必须使用[]like 来转义它[OCR Title]:

INSERT INTO Responses (OCR, DeadlineDate, [OCR Title]) VALUES( ...
Run Code Online (Sandbox Code Playgroud)

另外,请尝试使用参数化查询而不是连接值:

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();
  }
}
Run Code Online (Sandbox Code Playgroud)