在c#中逐行读取文件并插入access数据库

本文关键字:插入 access 数据库 文件 读取 逐行 | 更新日期: 2023-09-27 18:00:48

我正在编写一个简单的c#应用程序,其中我从文件中读取一行,将其拆分,并在适当的转换后将相应的令牌插入到访问数据库中。我正在使用流读取器逐行读取输入文件。这是我的代码片段。

using(reader = Streamreader(filepath)
{
    while((line = reader.readline()) != null)
    {
        string[] tokens = line.split(''t');
        mycommand.commandtext = "INSERT INTO table_name (name, property) VALUES (@xname, @xproperty)";
        mycommand.parameters.addwithvalue("@xname", tokens[0]);
        mycommand.parameters.addwithvalue("@xproperty", float.parse(tokens[1]);
        mycommand.executenonquery();
    }
}

问题是,如果输入文件包含6行不同的行,那么只有与第一行相关的值会在我的数据库中重复6次。我做错了什么?

在c#中逐行读取文件并插入access数据库

您不能替换循环中的参数,因为OleDCommand不支持命名参数。参数替换是按照添加参数的顺序进行的,因此每次运行都必须创建一个新命令,因为第二次循环运行添加了第三个和第四个参数(而您只使用了两个(。