【问题标题】:OleDbCommand Syntax error in INSERT INTO statementINSERT INTO 语句中的 OleDbCommand 语法错误
【发布时间】:2014-06-30 15:21:49
【问题描述】:

我在 INSERT INTO 语句中遇到语法错误,我不知道为什么。我检查了几个与我的问题几乎完全相同的不同 SO 问题,并且在以这种方式和那种方式更改我的代码之后它仍然无法正常工作。

        var cnnStr = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};", oldDb);
        var cnn = new OleDbConnection(cnnStr);
        cnn.Open();

        //make new access table
        using (OleDbCommand command = new OleDbCommand())
        {
            command.Connection = cnn;
            command.CommandText = String.Format("CREATE TABLE [{0}] ([Tag] string, [Text] string)", newTable + "_Diff");
            try
            {
                command.ExecuteNonQuery();
            }
            catch
            {
                //table already exists
            }
        }

        //fill access table
        using (OleDbCommand command = new OleDbCommand())
        {
            command.Connection = cnn;
            command.CommandText = String.Format("INSERT INTO [{0}] (Tag, Text) VALUES (?, ?)", newTable + "_Diff");
            command.Parameters.Add(new OleDbParameter("Tag", ""));
            command.Parameters.Add(new OleDbParameter("Text", ""));
            for (int i = 0; i < (diffText.Length - 1); i++)
            {
                command.Parameters["Tag"].Value = diffTag[i];
                command.Parameters["Text"].Value = diffText[i];
                command.ExecuteNonQuery();
            }
        }

        cnn.Close();

正在创建表,所以我知道我的连接没有问题,只是它不喜欢我的插入语句。

【问题讨论】:

    标签: c# oledb insert-into oledbcommand


    【解决方案1】:

    在您的插入命令中,将文本放在方括号内,“文本”是关键字

    command.CommandText = String.Format("INSERT INTO [{0}] (Tag, [Text]) 
                                        VALUES (?, ?)", newTable + "_Diff");
    

    还要确保你用单引号包含你的值

    值('?','?')

    希望这可行

    【讨论】:

    • 啊啊啊我以为我有!我一定是在改变其他东西时把括号拿出来了。感谢您花时间为我指出这一点 Karthik
    • 我正在尝试选择此作为答案,但在我单击复选标记后它会将其取消...我稍后再试
    • 是的..我可以看到我的声誉上下波动:(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多