加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何从文件执行读取数据,然后验证数据并将数据异步插入到

发布时间:2020-12-15 22:02:06 所属栏目:百科 来源:网络整理
导读:我的 Windows服务中有以下三种方法用于将CSV数据文件转换为Sql server数据库. 方法1:从CSV文件读取数据(每行包含一个Employee数据) 方法2:按员工ID,姓名等验证数据. 方法3:用于将数据插入数据库表. 目前,我正在从CSV文件中读取一行并逐个调用上述3种方法(
我的 Windows服务中有以下三种方法用于将CSV数据文件转换为Sql server数据库.

>方法1:从CSV文件读取数据(每行包含一个Employee数据)
>方法2:按员工ID,姓名等验证数据.
>方法3:用于将数据插入数据库表.

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

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

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

解决方法

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

被接受的员工名单

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

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');

当您的所有查询都准备好后,您可以按顺序运行它们.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读