.net2.0中使用SqlBulkCopy进行大批量数据迁移(1)
?在.Net1.1中无论是对于批量插入整个DataTable中的所有数据到数据库中,还是进行不同数据源之间的迁移,都不是很方便。而在.Net2.0中,SQLClient命名空间下增加了几个新类帮助我们通过DataTable或DataReader批量迁移数据。数据源可以来自关系数据库或者XML文件,甚至WebService返回结果。其中最重要的一个类就是SqlBulkCopy类,使用它可以很方便的帮助我们把数据源的数据迁移到目标数据库中。??下面我们先通过一个简单的例子说明这个类的使用:???? ????DateTime startTime;?? protected void Button1_Click(object sender,EventArgs e)?? {?? startTime = DateTime.Now;?? string SrcConString;?? string DesConString;?? SqlConnection SrcCon = new SqlConnection();?? SqlConnection DesCon = new SqlConnection();?? SqlCommand SrcCom = new SqlCommand();?? SqlDataAdapter SrcAdapter = new SqlDataAdapter();?? DataTable dt = new DataTable();?? SrcConString =?? ConfigurationManager.ConnectionStrings["SrcDBConnectionString"].ConnectionString;?? DesConString =?? ConfigurationManager.ConnectionStrings["DesDBConnectionString"].ConnectionString;?? SrcCon.ConnectionString = SrcConString;?? SrcCom.Connection = SrcCon;?? SrcCom.CommandText = " SELECT * From [SrcTable]";?? SrcCom.CommandType = CommandType.Text;?? SrcCom.Connection.Open();?? SrcAdapter.SelectCommand = SrcCom;?? SrcAdapter.Fill(dt);?? SqlBulkCopy DesBulkOp;?? DesBulkOp = new SqlBulkCopy(DesConString,?? SqlBulkCopyOptions.UseInternalTransaction);?? DesBulkOp.BulkCopyTimeout = 500000000;?? DesBulkOp.SqlRowsCopied +=?? new SqlRowsCopiedEventHandler(OnRowsCopied);?? DesBulkOp.NotifyAfter = dt.Rows.Count;?? try?? {?? DesBulkOp.DestinationTableName = "SrcTable";?? DesBulkOp.WriteToServer(dt);?? }?? catch (Exception ex)?? {?????????? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |