c# – 如何使用ADO.Net最好地插入350,000行
发布时间:2020-12-15 04:29:45 所属栏目:百科 来源:网络整理
导读:我有一个350,000行的csv文件,每行有大约150列. 使用ADO.Net将这些行插入SQL Server的最佳方法是什么? 我通常这样做的方法是手动创建SQL语句.我想知道是否有任何方法可以将其编码为简单地将整个数据表插入SQL Server?或者像这样的捷径. 顺便说一句,我已经尝
我有一个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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |