C# 语法错误 - INSERT INTO 语句。 Access 数据库。

标签 c# ms-access syntax insert sql-insert

这是我的代码,我在 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/

相关文章:

sql-server - 使用带有两个表的 SQL View 在 MS-Access 表单上编辑数据的任何方法

iphone - 在 iOS 应用程序中使用 .mdb 文件而不是 SQLite?

sql - 在T-SQL中,如何插入默认设置为所有值的新行?

c# - 如何将包含某些属性的自定义类类型的未知对象列表传递给方法?

c# - 如何设置名称为字符串形式的对象的属性?

c# - 获取实现接口(interface)的 "default"具体类

syntax - 是否可以从 luaL_loadstring 等获取有关语法错误发生位置的更多信息?

c# - 当图片框位于另一个图像上方时如何使它透明

sql - 如何在 Microsoft Access 中通过 VBA 设置 INSERT SQL 查询的参数值?

具有多个隐式参数的函数文字