创建一个实现IDataReader的类"CsvDataReader".只需实现Read(),GetValue(int i),Dispose()和构造函数:如果需要,可以让其余的抛出NotImplementedException,因为SqlBulkCopy不会调用它们.使用read来处理每一行的读取,使用GetValue来读取行中的第i个值.
然后将其传递给SqlBulkCopy,并使用您想要的相应列映射.
使用该方法,我获得大约30000条记录/秒插入速度.
如果您可以控制源文件格式,请将其设置为分隔符,因为它比CSV更容易解析.
编辑:http://www.codeproject.com/KB/database/CsvReader.aspx - tx Mark Gravell.