SQLBulkCopy,用于数据库之间大批量的数据传递。通常用于新,旧数据库之间数据的更新。即使表结构完全不同,也可以通过字段间的对应关系,顺利的将数据导过来。
- SqlConnection conn = new SqlConnection(Connstring);
- conn.Open();
- using (SqlBulkCopy sqlBC = new SqlBulkCopy(conn))
- {
- //设置一个批,写入多少条记录
- sqlBC.BatchSize = 100000;
- //设置逾时的秒数
- sqlBC.BulkCopyTimeout = 60;
- //设置 NotifyAfter 属性,以便在每拷贝 10000 条记录至数据表后,呼叫事件处理函数
- sqlBC.NotifyAfter = 10000;
- //sqlBC.SqlRowsCopied += new SqlRowsCopiedEventHandler(OnSqlRowsCopied);
- sqlBC.DestinationTableName = "dbo.A_Test";
- //对应数据行
- sqlBC.ColumnMappings.Add("ABC", "ABC");
- sqlBC.ColumnMappings.Add("EFG", "EFG");
- sqlBC.ColumnMappings.Add("TEST", "TEST");
- //开始写入
- sqlBC.WriteToServer(db);
- }
- conn.Dispose();
复制代码 |