使用SqlBulkCopy将DataTable中的数据批量插入数据库中
2017-12-24 20:07
756 查看
#region 使用SqlBulkCopy将DataTable中的数据批量插入数据库中 /// <summary> /// 使用SqlBulkCopy将DataTable中的数据批量插入数据库中 /// </summary> /// <param name="strTableName">数据库中对应的表名</param> /// <param name="dtData">数据集</param> public void SqlBulkCopyInsert(string strTableName, DataTable dtData) { string ConStr = connectionString;// 数据库连接字符串 try { using (SqlBulkCopy sqlRevdBulkCopy = new SqlBulkCopy(ConStr))//引用SqlBulkCopy { sqlRevdBulkCopy.DestinationTableName = strTableName;//数据库中对应的表名 sqlRevdBulkCopy.NotifyAfter = dtData.Rows.Count;//有几行数据 sqlRevdBulkCopy.WriteToServer(dtData);//数据导入数据库 sqlRevdBulkCopy.Close();//关闭连接 } } catch (Exception ex) { WriteErrorLog(ex.Message + "数据库处理出错654行。SqlBulkCopyInsert"); throw (ex); } } #endregion
使用事务:
//BCP copy
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "server=.;uid=dmkj_hpc;pwd=#$wlh*&1110h%c;database=DMKJ_SMS";
conn.Open();
SqlTransaction sqlbulkTransaction = conn.BeginTransaction();
//请在插入数据的同时检查约束,如果发生错误调用sqlbulkTransaction事务
SqlBulkCopy copy = new SqlBulkCopy(conn, SqlBulkCopyOptions.CheckConstraints, sqlbulkTransaction);
copy.DestinationTableName = "T_SMS_SendInfo";
foreach (DataColumn dc in dataTable.Columns)
{
copy.ColumnMappings.Add(dc.ColumnName, dc.ColumnName);
}
try
{
copy.WriteToServer(dataTable);
sqlbulkTransaction.Commit();
}
catch (Exception ex)
{
sqlbulkTransaction.Rollback();
Console.WriteLine(ex.ToString());
}
finally
{
copy.Close();
conn.Close();
}
相关文章推荐
- 使用SqlBulkCopy将DataTable中的数据批量插入数据库中
- 使用SqlBulkCopy将DataTable中的数据批量插入数据库中
- 大数据批量插入数据库使用(SqlBulkCopy )效率更高
- 使用SqlBulkCopy, 插入整个DataTable中的所有数据到指定数据库中
- C#使用SqlBulkCopy将DataTable写入数据库的表中(表不存在则创建新表,数据存在则更新,不存在则插入)
- 使用sqlbulkcopy 批量插入数据
- 批量插入数据 C# SqlBulkCopy使用
- 批量插入数据 C# SqlBulkCopy使用(当插入超过1000行用)
- 使用SqlBulkCopy插入DataTable到数据库
- 批量插入数据 C# SqlBulkCopy使用
- C# 使用 SqlBulkCopy 类批量复制数据到数据库
- c# 数据库批量插入数据SqlBulkCopy 示例
- 批量插入数据 C# SqlBulkCopy使用
- 将txt文件中的数据批量插入到数据库中SqlBulkCopy
- DataTable 批量插入SqlServer数据库 使用:SqlBulkCopy
- 使用SqlBulkCopy把DataTable里的数据插入数据表
- 使用SqlBulkCopy将datatable数据批量导入sqlServer
- 采用SqlBulkCopy向数据库批量插入数据(大数据效果显著)
- 使用SqlBulkCopy对数据进行批量插入
- 使用SqlBulkCopy进行批量插入数据时踩过的坑