zoukankan      html  css  js  c++  java
  • 使用 SqlBulkCopy 批量插入数据

         /// <summary>
            /// 使用SqlBulkCopy将DataTable中的数据批量插入数据库中
            /// </summary>
            /// <param name="strTableName">数据库中对应的表名</param>
            /// <param name="dtData">数据集</param>
            /// <param name="dicFields">中英文对应字典</param>
            /// <returns></returns>
            public string SqlBulkCopyInsert(string connStr, string strTableName, DataTable dtData, Dictionary<string, string> dicFields = null)
            {
                try
                {
                    using (SqlBulkCopy sqlCopy = new SqlBulkCopy(connStr))//引用SqlBulkCopy
                    {
                        sqlCopy.BulkCopyTimeout = 6000;//6s没有操作完成失败
    
                        sqlCopy.DestinationTableName = strTableName;//数据库中对应的表名
    
                        foreach (DataColumn item in dtData.Columns)
                        {
                            try
                            {
                                if (dicFields != null)
                                {
                                    //映射列头和字段名称
                                    item.ColumnName = dicFields[item.ColumnName.Replace(" ", "")];
                                }
                                sqlCopy.ColumnMappings.Add(item.ColumnName, item.ColumnName);
                            }
                            catch (Exception ex)
                            {
                                NLogHelper.Error("数据字典和字段{" + item.ColumnName + "}不对应!", ex);
                            }
                        }
                        sqlCopy.WriteToServer(dtData);//数据导入数据库
    
                        sqlCopy.Close();//关闭连接
                    }
                    return null;
                }
                catch (Exception ex)
                {
                    NLogHelper.Error("批量插入数据出错!", ex);
                    return ex.Message;
                }
            }
    

      

     //映射表头和数据库表字段的关系
            public static Dictionary<string, string> dicFields = new Dictionary<string, string>() {
                {"型号","Model"},{"品牌","Brand"},{"批号","MakeYear"}
            };
  • 相关阅读:
    ExtJs中动态加载机制研究(转)
    ExtJs4 学习3 combox自动加载的例子
    Extjs 4学习2
    ExtJS 4学习
    javascript学习(知识点整理)
    ExtJS智能提示工具spket安装与破解
    eclipse慢 优化(转)
    疯狂学习java web5(SSI框架)
    疯狂学习java web4(jsp)
    疯狂学习java web3(javaScript)
  • 原文地址:https://www.cnblogs.com/DONET-LC/p/7486449.html
Copyright © 2011-2022 走看看