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

Posted

技术标签:

【中文标题】无法通过 C# oledb 将记录插入 MS Access【英文标题】:Can't insert record into MS Access through C# oledb 【发布时间】:2015-05-01 21:01:41 【问题描述】:

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

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 语句中的语法错误。”

我只是找不到问题。我用于处理数据库数据的其他功能工作正常。

【问题讨论】:

索引是 MS Access 中的保留字。将单词括在括号中,如下所示:Genres([Index], GenreText) @Fink,这就是问题所在。非常感谢。在过去的几个小时里,我一直在为此苦苦挣扎。 【参考方案1】:

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

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

【讨论】:

以上是关于无法通过 C# oledb 将记录插入 MS Access的主要内容,如果未能解决你的问题,请参考以下文章

通过 C# 和 OleDb 在 Excel 电子表格中插入一行

ORA-01008 错误 - 使用 OleDb 将记录插入 Oracle DB

如何将从 ms 访问表中检索到的记录插入到 sql server 表中?

如何使用 oledb 在 c# 中将下拉列数据插入到 excel 中

使用 c# 和 oledb 查询更新 Ms-Access 2010 中的列值

插入语句 C# OleDb 中的语法错误