使用SqlBulkCopy sqlserver 批量插入数据(C#)

先说实现原理:将需要插入数据库的集合里面的数据存在datatable里面,列名需相同,然后调用SqlBulkCopy方法。
1.新建datatable,并赋值
DataTable dataTable = new DataTable();
dataTable.Columns.Add("NAME1");
dataTable.Columns.Add("NAME2");
dataTable.Columns.Add("NAME3");
dataTable.Columns.Add("NAME4");
DataRow row = dataTable.NewRow();
for (int i = 1; i < req.data.Count; i++)
{
row["NAME1"] = NAME1;
row["NAME2"] = NAME2;
row["NAME3"] = NAME3;
row["NAME4"] = NAME4;
dataTable.Rows.Add(row);
}

2.调用SqlBulkCopy批量插入,“TABLE_NAME”为表名,dataTable是存好数据的dataTable
BulkInsertData(dataTable, "TABLE_NAME");
SqlBulkCopy方法
public static void BulkInsertData(DataTable dt, string tableName) {
string ConnectionString = "Server=" + "127.0.0.1" + ";Database=localhost;User ID=sa;Password=123";//数据库连接字符串
using (var bulkCopy = new SqlBulkCopy(ConnectionString))
{
foreach (DataColumn dcPrepped in dt.Columns)
{
bulkCopy.ColumnMappings.Add(dcPrepped.ColumnName, dcPrepped.ColumnName);
}
bulkCopy.BulkCopyTimeout = 660;
bulkCopy.DestinationTableName = tableName;
bulkCopy.WriteToServer(dt);
}
}

posted @   乌卡拉卡  阅读(181)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示