c#大批量数据插入

 /// <summary>
        /// 批量插入数据
        /// </summary>
        /// <param name="list"></param>
        /// <returns></returns>
        public string InsertPaperCertInfoListData(List<PaperCertInfo> list)
        {
            string returnStr = string.Empty;
            DataTable dt = new DataTable();
            var con = dataProvider.GetSqlConnection();
            try
            {
                dt = GetPaperCertInfolDataTable(list);
            }
            catch (Exception ex)
            {

                returnStr = "Error"; ;
            }
            if (dt != null && dt.Rows.Count > 0)
            {
                try
                {

                    if (con.State == ConnectionState.Closed)
                    {
                         con.Open();
                    }
                   
                    if (con.State == ConnectionState.Open)
                    {
                        using (SqlTransaction ts = con.BeginTransaction())
                        {
                            try
                            {
                                using (SqlBulkCopy bulk = new SqlBulkCopy(con, SqlBulkCopyOptions.Default, ts))
                                {
                                    bulk.BatchSize = 1000;
                                    bulk.DestinationTableName = "dbo.TPaperCertInfo";
                                    bulk.ColumnMappings.Clear();
                                    bulk.ColumnMappings.Add("fPaperCertCode", "fPaperCertCode");
                                    bulk.ColumnMappings.Add("fCertTypeID", "fCertTypeID");
                                    bulk.ColumnMappings.Add("fCertTypeName", "fCertTypeName");
                                    bulk.ColumnMappings.Add("fPosition", "fPosition");
                                    bulk.ColumnMappings.Add("fCertBatchNo", "fCertBatchNo");
                                    bulk.ColumnMappings.Add("fCertBatchName", "fCertBatchName");
                                    bulk.ColumnMappings.Add("fStatus", "fStatus");
                                    bulk.ColumnMappings.Add("fPrintStatus", "fPrintStatus");
                                    bulk.ColumnMappings.Add("fMailStatus", "fMailStatus");
                                    bulk.ColumnMappings.Add("fCreateTime", "fCreateTime");
                                    bulk.ColumnMappings.Add("fCreateUserID", "fCreateUserID");
                                    bulk.ColumnMappings.Add("fNotes", "fNotes");
                                    bulk.NotifyAfter = 100;
                                    //bulk.SqlRowsCopied += new SqlRowsCopiedEventHandler(SqlRowsCopied);
                                    bulk.WriteToServer(dt);
                                    ts.Commit();
                                    //returnStr = "OK";
                                }
                            }
                            catch (Exception ex)
                            {
               
                                ts.Rollback();
                                returnStr = "Error";
                            }
                        }
                        dt.Dispose();
                    }
                }
                catch (Exception ex)
                {                    
                    returnStr = "Error";
                }
                finally
                {
                    con.Close();
                    con.Dispose();
                }
            }
            return returnStr;
        }



        /// <summary>
        /// 建立datatable映射到数据库中的表
        /// </summary>
        /// <param name="list"></param>
        /// <returns></returns>
        private DataTable GetPaperCertInfolDataTable(List<PaperCertInfo> list)
        {
            DataTable dt = new DataTable();
            //dt.Columns.Add("fPaperCertID");
            dt.Columns.Add("fPaperCertCode");
            dt.Columns.Add("fCertTypeID");
            dt.Columns.Add("fCertTypeName");
            dt.Columns.Add("fPosition");
            dt.Columns.Add("fCertBatchNo");
            dt.Columns.Add("fCertBatchName");
            dt.Columns.Add("fStatus");
            dt.Columns.Add("fPrintStatus");
            dt.Columns.Add("fMailStatus");
            dt.Columns.Add("fCreateTime");
            dt.Columns.Add("fCreateUserID");
            dt.Columns["fCreateUserID"].DataType = typeof(Guid);
            dt.Columns.Add("fNotes");
            for (int i = 0; i < list.Count; i++)
            {
                DataRow dr = dt.NewRow();
                //dr["fPaperCertID"] = Convert.ToInt32(list[i].PaperCertID);
                dr["fPaperCertCode"] = list[i].PaperCertCode;
                dr["fCertTypeID"] = Convert.ToInt32(list[i].CertTypeID);
                dr["fCertTypeName"] = list[i].CertTypeName;
                dr["fPosition"] = list[i].Position;
                dr["fCertBatchNo"] = list[i].CertBatchNo;
                dr["fCertBatchName"] = list[i].CertBatchName;
                dr["fStatus"] = Convert.ToInt32(list[i].Status);
                dr["fPrintStatus"] = Convert.ToInt32(list[i].PrintStatus);
                dr["fMailStatus"] = Convert.ToInt32(list[i].MailStatus);
                dr["fCreateTime"] = Convert.ToDateTime(list[i].CreateTime);              
                dr["fCreateUserID"] = list[i].CreateUserID;
                //dr["fCreateUserID"] = Guid.NewGuid();
                dr["fNotes"] = list[i].Notes;                
                dt.Rows.Add(dr);
            }
            return dt;
        }


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值