我的 Windows 服务中有以下三种方法用于将 CSV 数据文件转换为 Sql 服务器数据库。
目前,我正在从 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/