使用SqlBulkCopy对数据进行批量插入
时间:2011-01-07 来源:孤独者
1.定义一个DataTable,并从数据库中获取表结构。
2.遍历泛型集合,将集合中的每一个对象,赋值给DataTable中的每一行。
3.获取一个DataTable后,通过使用SqlBulkCopy类执行批量操作。
具体代码如下:
1 using (SqlConnection con = new SqlConnection(constr))
2 {
3 //从数据库中拷贝表结构
4 DataTable dt = new DataTable();
5 SqlDataAdapter sda = new SqlDataAdapter("select * from Product_Target where 1=2", con);
6 sda.Fill(dt);
7 //将泛型集合的行拷贝到DataTable的行
8 DataRow dr;
9 foreach(Product product in listProduct)
10 {
11 dr = dt.NewRow();
12 dr["productName"] = product.ProductName;
13 dr["salePrice"] = product.SalePrice;
14 dr["description"] = product.Description;
15 dt.Rows.Add(dr);
16 }
17 //使用SqlBulkCopy执行批量复制
18 using (SqlBulkCopy bulkCopy = new SqlBulkCopy(constr))
19 {
20 //每一批次中的行数
21 bulkCopy.BatchSize = 10;
22 //服务器上目标表的名称
23 bulkCopy.DestinationTableName = "Product_Target";
24 try
25 {
26 bulkCopy.WriteToServer(dt);
27 }
28 catch (Exception)
29 {
30 }
31 }
32 }
对于SqlBulkCopy类的一些其他用法,请参考周公的这篇文章:http://blog.csdn.net/zhoufoxcn/archive/2007/11/07/1871514.aspx。
相关阅读 更多 +