C#:将字符串数组中的数据输入到 MS Access 数据库表中

标签 c# ms-access ado.net

我已尽我所能进行搜索,但找不到任何可以帮助我的东西。所以我有一个脚本,它读取/拆分数据并将 .txt 文件中的数据存储到一些数组中。 (此处列出的是 Vndnbr)。我遇到的问题是如何将数组中的每个条目作为 MS Access 表中列下的条目输入?这是我目前所拥有的:

public void AddToDatabase()
{
    OleDbCommand command;
    OleDbConnection connection =
        new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;" +
                            "Data Source=filepath");
    foreach (string x in Vndnbr)
    {
        cmdstringVND[k] = "insert into Table1 (Vndnbr) Values (x)";
        k++;
        command = OleDbCommand(cmdstringVND[k],connection);
    }

    command.Parameters.AddWithValue("?", ReadFromFile("filepath"));
    connection.Open();
    command.ExecuteNonQuery();
    connection.Close();
}

我不熟悉 Access 库或应该在 AddwithValue 的第一个参数中插入什么,因为我只是在做了一些研究后复制粘贴了这些行。 如果有人可以帮助我如何将数组中的所有数据添加到表中,将不胜感激,谢谢。

最佳答案

你的代码有很多错误

  • 在你的循环中你不使用参数来存储值 插入
  • 你永远不会创建命令。 (使用新的)
  • 尝试只执行最后一条命令,因为 ExecuteNonQuery 在循环之外

    public void AddToDatabase()
    {
        string cmdText = "insert into Table1 (Vndnbr) Values (?)";
        using(OleDbConnection connection = new OleDbConnection(.....))
        using(OleDbCommand command = new OleDbCommand(cmdText, connection))
        {
            connection.Open();
            command.Parameters.AddWithValue("@p1", "");
            foreach (string x in Vndnbr)
            {
                 command.Parameters["@p1"].Value = x;
                 command.ExecuteNonQuery();
    
            }
        }
    }
    

我已经更改了您的代码以包含 using statement为了正确关闭和处理连接和命令,然后我在循环外初始化了命令,传递了一个通用字符串作为参数占位符,并用一个虚拟值初始化了这个参数。

在循环内,我用您的 Vndnbr 列表获得的实际值替换了先前的参数值并执行了命令。

关于C#:将字符串数组中的数据输入到 MS Access 数据库表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19572203/

相关文章:

c# - 关于 C# lambda 中值捕获的困惑

ms-access - Access VBA 随机更改大写和小写

ado.net - 在 ADO.NET 中使用动态创建的临时表进行批量复制

c# - 方法 'Open' 没有重载需要 1 个或多个参数

c# - 我希望 wpf DataGrid 的其余部分中的数据是只读的,只有新行应该是可编辑的

C# WPF 在 Stackpanel 中以编程方式创建的 DataTemplate Dockpanel 无效

ms-access - Access 查询错误 - 空和变体数据类型 - 如何修复此错误?

mysql - Access 查询,也获取没有关系的值

c# - 无法执行事务操作,因为有待处理的请求在工作

c# - 如何集中和重定向 asp :Menu on the Server Side? 的 WebForm MenuItem 链接