我的 Windows 服务中有以下三种方法用于将 CSV 数据文件转换为 Sql 服务器数据库。

  • 方法一:用于从 CSV 文件中读取数据(每行包含一个 Employee 数据)
  • 方法 2:用于通过员工 ID、姓名等验证数据。
  • 方法 3:用于将数据插入到数据库表中。

  • 目前,我正在从 CSV 文件中读取一行并依次调用上述 3 种方法(意思是在完成方法 1 后我将启动方法 2,完成方法 2 后我将启动方法 3。然后我将从中读取另一行CSV 文件并重复相同的步骤)

    由于这是一个同步过程,因此处理一个包含数万条记录的文件需要很长时间。

    如果我想让它成为一个异步过程,我将如何异步调用我的方法,我应该使用哪些 C# 类来实现这一点?

    最佳答案

    要做到这一点,最好是在代码中创建您的类,为您的类创建一个列表,在验证时将已验证的数据添加到此列表中,未验证的您可以将它们放在字符串或其他列表中以显示其余的不是' t 插入。

    录用员工名单

    public List<Employee> acceptedEmployees = new List<Employee>();
    

    雇员类
    class Employee {
       public int ID{ get; set; }
       public string Name{ get; set; }
    
       public Employee(int ID, string name)
            {
               ID = ID;
               Name = name;
            }
    }
    

    在循环中,您可以将它们添加到列表中,然后从此列表创建批量插入或制作日志或将它们发送回客户端。

    当您将批处理添加到数据库时,请确保使用 1 个连接插入所有内容,不要在每个插入批处理上进行连接,这会导致系统变慢。

    列表完成后,您可以创建每条语句 500 的批量插入,例如:
    INSERT INTO mytable (ID, NAME) VALUES (1,'Dan'),(2,'Stack'),(3,'Whatever');
    

    当您的所有查询准备就绪后,您可以按顺序运行它们。

    关于c# - 如何执行从文件读取数据,然后验证数据并将数据异步插入到数据库操作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22077232/

    10-12 16:38
    查看更多