【问题标题】:How to properly write to an Access (2002-2003) database using C#如何使用 C# 正确写入 Access (2002-2003) 数据库
【发布时间】:2018-05-17 03:44:27
【问题描述】:

我无法使用 C# 将新条目写入本地 Access 2002-2003 (.mdb) 数据库,问题是 OleDbCommand 中我的 cmdText 属性的语法 em> 类。

请不要提及参数化 SQL 语句或 SQL 注入,因为这仅用于个人测试

无论如何,这是我尝试使用的命令文本:

string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Daniel\source\repos\DatabaseInteraction2\DatabaseInteraction2\SimpleDatabase.mdb";

        OleDbCommand command;

        using (OleDbConnection connection = new OleDbConnection(connectionString))
        {
            connection.Open();
            command = new OleDbCommand("Insert Into SimpleTable (userName,userPassword) Values " +
            "('TestUsername','TestPassword')", connection);

            try
            {
                command.ExecuteNonQuery();
            }
            catch(Exception error)
            {
                Console.WriteLine(error.Message
            }
        }

在 Access 数据集中执行插入的正确方法是什么?我应该使用什么语法?目前,我尝试了 6 种不同的方法,但都没有奏效。

我得到的异常与以下有些相似:

  • 未知参数
  • 目录丢失
  • “插入”中的语法错误

【问题讨论】:

  • @mjwills 如果错误的方法不能阻止 SQL 注入,那么我不介意(目前),我需要一个简单的、最新的使用 Microsoft 的示例OleDb 将数据插入数据集
  • 在您发布的代码中,您为什么要创建两个OleDbCommand 对象?为什么要声明一个变量,创建一个新对象,将它分配给变量,然后完全忽略两者?如果您想学习如何使用数据库,请对使用数据库进行一些研究。如果您需要有关特定问题的帮助,请提供有关该特定问题的信息。我们不关心我们看不到的代码产生的错误消息的模糊近似值。您发布的代码生成的实际错误消息是什么?它发生在哪里?
  • @mjwills 另外,我的完整代码是葡萄牙语,对你来说很难,最常见的例外是 0x80040E14
  • “我需要一个使用 Microsoft 的 OleDb 将数据插入数据集的简单、最新示例”。对于网络上已有的众多示例,您到底有什么不明白的地方?

标签: c# database visual-studio oledb ms-access-2003


【解决方案1】:

你的代码大部分都很好(你错过了);在 console.writeline 的末尾)。但是,您的连接字符串是错误的。改成...

string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Daniel\source\repos\DatabaseInteraction2\DatabaseInteraction2\SimpleDatabase.mdb";

确保您的数据库存在于该位置。否则,这工作得很好。

您可能需要考虑改用 Microsoft.ACE.OLEDB.12.0,因为 Microsoft.Jet.OLEDB.4.0 是较旧的驱动程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多