C# BulkCopy方式数据批量导入数据库
来源:互联网 发布:淘宝上架宝贝时间技巧 编辑:程序博客网 时间:2024/06/06 08:27
/// <summary> /// BulkCopy方式批量导入黑名单 /// </summary> /// <param name="mobileList"></param> /// <returns></returns> public static int BulkCopyWhite_UserId(List<string> mobileList, string UserCode) { try { Base.WriteErrorLog("开始BulkCopyBlack", HttpContext.Current.Server.MapPath("..\\ErrorLog\\")); DataTable dt = new DataTable(); dt.Columns.Add("mobile", typeof(string)); dt.Columns.Add("usercode", typeof(string)); dt.Columns.Add("whiteno", typeof(string)); dt.Columns.Add("createdate", typeof(DateTime)); //选择了多个用户 string[] arr = UserCode.Split(','); foreach (string mobile in mobileList) { foreach (var item in arr) { DataRow dr = dt.NewRow(); dr["mobile"] = mobile; dr["usercode"] = item; dr["whiteno"] = "用户添加"; dr["createdate"] = DateTime.Now.ToString(); dt.Rows.Add(dr); } } string str = sqlConnString(); SqlConnection conn = new SqlConnection(str); conn.Open(); Base.WriteErrorLog("conn.Open!!", HttpContext.Current.Server.MapPath("..\\ErrorLog\\")); using (SqlBulkCopy sqlBC = new SqlBulkCopy(conn)) { sqlBC.BatchSize = 1000; sqlBC.BulkCopyTimeout = 60; //sqlBC.NotifyAfter = 10000; //sqlBC.SqlRowsCopied += new SqlRowsCopiedEventHandler(OnSqlRowsCopied); sqlBC.DestinationTableName = "dbo.B_Sms_WhiteList_Info"; sqlBC.ColumnMappings.Add("mobile", "White_No"); sqlBC.ColumnMappings.Add("usercode", "Creator"); sqlBC.ColumnMappings.Add("whiteno", "White_Note"); sqlBC.ColumnMappings.Add("createdate", "CreateDate"); sqlBC.WriteToServer(dt); } dt.Dispose(); conn.Dispose(); Base.WriteErrorLog("结束BulkCopyBlack", HttpContext.Current.Server.MapPath("..\\ErrorLog\\")); return 1; } catch { return -1; } }