c# - 无法通过 C# oledb 将记录插入 MS Access

标签 c# ms-access oledb

我的 MS Access 数据库中有一个名为“Genres”的表。它具有以下列:

  • ID -> 自动编号
  • 索引 -> 数字
  • 流派文本 -> 文本

这是我使用的 C# 代码:

public static void AddGenre(string text, int index)
    {
        string query = "INSERT INTO Genres(Index, GenreText) VALUES(@index, @text)";
        using (OleDbConnection con = new OleDbConnection(connectionString))
        {
            try
            {
                OleDbCommand command = new OleDbCommand(query, con);

                command.Parameters.AddWithValue("@index", index);
                command.Parameters.AddWithValue("@text", text);

                con.Open();
                command.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                throw new ArgumentException();
            }
        }
    }

问题是我总是遇到异常“INSERT INTO 语句中的语法错误。”

我就是找不到问题所在。我用于操作数据库数据的其他功能运行良好。

最佳答案

索引是 reserved keyword 在 Access 中。您需要将其括在 [] 中。试试这个:

INSERT INTO Genres([Index], GenreText) VALUES(@index, @text)

关于c# - 无法通过 C# oledb 将记录插入 MS Access,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29995094/

相关文章:

asp.net - 将 SQL Server 与 Access Form 或 ASP.NET 结合使用

ms-access - 将 Access.Application 对象传递给函数 : Dim, Set, Object 如何使其工作?

asp.net - 从 Excel 导入数据集时为列值插入 NULL

c# - 我可以使用应用程序 (GUI) 和 Windows 服务创建一个项目,并使用一个安装程序来安装这两个项目吗?

c# - SignalR - 向所有人发送消息,不包括用户的所有连接

c# - C# 处理窗口数据网格的鼠标滚动事件

C# 选择一种与预期的方法不同的方法,具有可选参数和多级继承

ms-access - VBA 文件的版本控制

c++ - 使用 OLE DB 在 SQL 紧凑型服务器中显示表名的原始 C++ 代码

mysql - 更新时出现 Microsoft Jet OLEDB 语法错误