cdatatable大数据操作_dataTable写入数据库(大数据写入)

例1:

connectionStr,链接字符串

dataTableName, 数据库中对应表名

sourceDataTable DataTable 要写入数据库的DataTable

字段要和表一致

public static void SqlBulkCopyByDataTable(string connectionStr, string dataTableName, DataTable sourceDataTable, int batchSize = 100000)

{

using (System.Data.SqlClient.SqlConnection connection = new System.Data.SqlClient.SqlConnection(connectionStr))

{

using (System.Data.SqlClient.SqlBulkCopy sqlBulkCopy = new System.Data.SqlClient.SqlBulkCopy(connectionStr,

System.Data.SqlClient.SqlBulkCopyOptions.UseInternalTransaction))

{

try

{

sqlBulkCopy.DestinationTableName = dataTableName;

sqlBulkCopy.BatchSize = batchSize;

for (int i = 0; i < sourceDataTable.Columns.Count; i++)

{

sqlBulkCopy.ColumnMappings.Add(sourceDataTable.Columns[i].ColumnName, sourceDataTable.Columns[i].ColumnName);

}

sqlBulkCopy.WriteToServer(sourceDataTable);

}

catch (Exception ex)

{

throw ex;

}

}

}

}

例2:

//省略连接字符串

SqlConnection conn = new SqlConnection(".....");

conn.Open();

//初始化类

using (System.Data.SqlClient.SqlBulkCopy sqlBC = new System.Data.SqlClient.SqlBulkCopy(conn))

{

//获取需要导入的数据表

DataTable dt = GetDataTable();

//每10W条数据一个事物

sqlBC.BatchSize = 100000;

//超时时间

sqlBC.BulkCopyTimeout = 60;

//表名Users

sqlBC.DestinationTableName = "dbo.Users";

//字段对应,分表为原数据表字段名,和导入数据库的字段名

sqlBC.ColumnMappings.Add("Access_ID", "MSSQL_ID");

sqlBC.ColumnMappings.Add("Access_Name", "MSSQL_Name");

//sqlBC.ColumnMappings.Add("Access_...", "MSSQL_...");

//sqlBC.ColumnMappings.Add("Access_...", "MSSQL_...");

//导入到数据库

sqlBC.WriteToServer(dt);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值