在asp.net 2.0中使用SqlBulkCopy类迁移数据
我们经常要在一个表中将数据迁移到另一个表,当然,用的方法十分多了。在.net 2.0中,提供了一个sqlbulkcopy类,也可以实现如下的操作,下面简单介绍下。比如一个表如下 PersonID int IDENTITY(1,1) PRIMARY KEY, ) INSERT INTO Person3(Name,Email,Picture) 假设person表已经存在了,则上面的语句可以往person3表中插入数据(在sql server 2005中执行)。现在我们使用下面的代码来实现 SqlCommand myCommand = new SqlCommand("SELECT * FROM Person", myConnection); myConnection.Open(); SqlDataReader dr = myCommand.ExecuteReader(); SqlConnection myNewConnection = new SqlConnection(connectionString); myNewConnection.Open(); SqlBulkCopy bulk = new SqlBulkCopy(myNewConnection); bulk.DestinationTableName = "[Person3]"; try { bulk.WriteToServer(dr); } catch (Exception ex) { Response.Write(ex.Message); } finally { myNewConnection.Close(); dr.Close(); myConnection.Close(); bulk.Close(); }
SqlBulkCopy bulk = new SqlBulkCopy(myNewConnection); bulk.DestinationTableName = "[Person3]"; 其中,将mynewconnection作为参数传到 sqlbulkcopy类的构造参数中去,并指定目标迁移的表名是person3. SqlCommand myCommand = new SqlCommand("SELECT * FROM Person", myConnection); myConnection.Open(); SqlDataReader dr = myCommand.ExecuteReader(); SqlConnection myNewConnection = new SqlConnection(connectionString); myNewConnection.Open(); SqlBulkCopy bulk = new SqlBulkCopy(myNewConnection); bulk.DestinationTableName = "[Person2]"; bulk.ColumnMappings.Add("Name", "LastName"); bulk.ColumnMappings.Add("Email", "Email"); bulk.ColumnMappings.Add("Picture", "Picture"); try { bulk.WriteToServer(dr); } catch (Exception ex) { Response.Write(ex.Message); } finally { myNewConnection.Close(); dr.Close(); myConnection.Close(); bulk.Close(); } 可以看到,这里使用bulk.ColumnMappings.Add(“。。。”,“。。。”)来强制规定,源目标字段和哪一个目标表的字段相匹配了。
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |