如何从.csv填充IDataReader以与SqlBulkCopy.WriteToServer(IDataReader)

本文关键字:IDataReader SqlBulkCopy WriteToServer 以与 csv 填充 | 更新日期: 2023-09-27 18:26:21

今天有人提到,使用WriteToServer的IDataReader版本(注意:数据存储在.csv文件中)将比对大型.csv文件使用数据表更快。不幸的是,我很难找到关于这一点实际工作/应该如何实现的信息。

我发现的唯一链接如下:

http://www.developerfusion.com/article/122498/using-sqlbulkcopy-for-high-performance-inserts/

  1. 数据实际存储在哪里
  2. 我会一次导入一行吗时间
  3. 你如何区分特定的字符案件

这是不是很棘手?

感谢

如何从.csv填充IDataReader以与SqlBulkCopy.WriteToServer(IDataReader)

请参阅此内容。它解释了如何使用ODBC提供程序读取CSV的文本,然后使用SqlBulkCopy将其导入数据库。例如:

using(var con = new OdbcConnection(
    "Driver={Microsoft Text Driver (*.csv)};" +
    "Dbq=c:''somepath'';" + 
    "Extensions=csv"))
{
   con.Open();
   using(var cmd = new OdbcCommand("select * from [" + myCsvFileName + "]", con))
   {
      using(IDataReader reader = cmd.ExecuteReader())
      {
           // Do whatever
      }
   }
}

从大型CSV文件大容量插入数据的一种方法是使用OLE DB Provider for Jet读取CSV文件。

您可以使用Schema.ini文件来描述CSV文件格式,并将OleDbDataReader作为参数传递给SqlBulkCopy.WriteToServer方法。