SqlBulkCopy批量插入
链接:https://pan.baidu.com/s/1zz6c3nyYqnhy6DrCHyAVlw 提取码:ja4m 复制这段内容后打开百度网盘手机App,操作更方便哦
SqlBulkCopy批量插入方法
作用:后台将DataTable的数据批量插入数据库
大致原理:循环Datatable的列的结构,映射到数据库的表的列,进行批量插入
注意:Datatable的列名一般要与数据表的列名完全一致,或者是按顺序的依次一致
运用:将SqlBulkCopy封装在SQLHelper供DAL调用
参考:https://blog.csdn.net/u010178308/article/details/84831268
https://bbs.csdn.net/topics/380128032
/// <summary> /// 将DataTable批量插入数据库表【用于Excel表数据信导入】 /// </summary> /// <param name="MyDt">传入的DataTable</param> /// <param name="DBtableName">服务器的表名(一定要一模一样)</param> /// <returns></returns> public static bool AddDataTableToDB(DataTable MyDt, string DBtableName) { SqlTransaction st = null; try { using (SqlConnection conn = new SqlConnection(connStr)) { conn.Open(); using (st = conn.BeginTransaction()) { using (SqlBulkCopy copy = new SqlBulkCopy(conn,SqlBulkCopyOptions.KeepNulls,st)) { copy.DestinationTableName = DBtableName; copy.BulkCopyTimeout = 1000; copy.WriteToServer(MyDt); st.Commit(); return true; } } } } catch { if (null != st) st.Rollback(); return false;//返回False 执行失败! } }