用NET_SqlBulkCopy类批量复制数据简单应用 - 技术文档 - 解决方案 - 重庆猫扑网络科技有限公司

河南彩票

  • 用NET_SqlBulkCopy类批量复制数据简单应用

  • 当前位置:网站河南彩票  >  技术文档      新闻来源:本站    发布者:    发布时间:2012-12-06


最近解析大量日志数据文件(.txt文件) 然后批量插入数据库,由于数据过百万量,一条一条插入很郁闷,后来在网上看到.net SqlBulkCopy类的批量复制数据功能很好用,下面贴出己的代码,仅供参考.


河南彩票 //黑名单入库


protected void btnInput_Click(object sender, EventArgs e)


{


河南彩票 long sLocct = 0;


河南彩票 DataTable inDt = GetLocalBlack(); //获取解析日志数据


if (inDt != null)


{


System.Diagnostics.Stopwatch sw01 = new System.Diagnostics.Stopwatch();


sw01.Start();


AddDataByLocal(inDt); //批量插入(本人一次插入20万,30万没有试过,有兴趣自己研究)


sw01.Stop();


河南彩票 sLocct = sw01.ElapsedMilliseconds; //这里是自己加的 用来记录插入数据所花时间


}


//labMsg02.Text = sLocct.ToString();


}




AddDataByLocal方法如下:


//本地数据批量录入


河南彩票 public bool AddDataByLocal(DataTable dt)


{


bool result = false;


河南彩票 string constring = @"server=192.168.1.7; user id=sa; password=123456; database= backup;";


河南彩票 using (System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(constring))


{


河南彩票 conn.Open();


try


{


using (System.Data.SqlClient.SqlBulkCopy sbc = new System.Data.SqlClient.SqlBulkCopy(constring))


{


try


{


sbc.DestinationTableName = "mobile_black "; //服务器上目标表的名称


河南彩票 sbc.BulkCopyTimeout = 180;  //设置允许超时时间为100秒


sbc.ColumnMappings.Add("mobile", "mobile"); //本地表和目标表列名


sbc.ColumnMappings.Add("ts_id", "ts_id");   //如果表有多个字段,下面继续添加


河南彩票 sbc.WriteToServer(dt);//插入数据


result = true;


}


catch (Exception ex)


{ WriteErrorLog(DateTime.Now.ToString() + ex.Message, "BulkCopy_Log"); }


}


}


catch (Exception ex) { throw ex; }


finally { if (conn.State != ConnectionState.Closed) conn.Close(); }


}


return result;


}



 

  • 河南彩票Copyright © 2015 重庆猫扑网络科技有限公司

    杏彩计划-主页 皇马彩票-主页 凤凰体彩-主页 一定牛彩票-主页 体彩屋-主页 诚信娱乐-主页 159彩票网-主页 聚恒彩票-主页