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 执行失败!  
            }
        }

 

posted @ 2019-10-26 16:03  风葬秋暝  阅读(203)  评论(0编辑  收藏  举报