微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 如何使用ADO.Net最好地插入350,000行

我有一个350,000行的csv文件,每行有大约150列.

使用ADO.Net将这些行插入sql Server的最佳方法是什么?

我通常这样做的方法是手动创建sql语句.我想知道是否有任何方法可以将其编码为简单地将整个数据表插入sql Server?或者像这样的捷径.

顺便说一句,我已经尝试过用SSIS做这个,但是我可以使用C#处理一些数据清理问题,但SSIS并不那么容易.数据以XML格式开头,但为了简单起见,我将其更改为CSV格式.

解决方法

创建一个实现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.

原文地址:https://www.jb51.cc/csharp/91377.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐