利用SqlBulkCopy类快速写入大批量数据
在.Net2.0中,SQLClient命名空间下增加了SqlBulkCopy类.
利用SqlBulkCopy类快速写入大批量数据,针对SQL Server的优化,可以写入DataRow数据,DataTable,DataReader;
使用 SqlBulkCopy 类可以执行下列操作:
1.WriteToServer(DataTable)写入数据表
2.WriteToServer(DataRow[])批次写入数据行
3.WriteToServer(DataTable,DataRowState)按行状态写入数据库表
4.WriteToServer(IDataReader)写入DataReader对象
例:
string connstr = "server=.;database=northwind;integrated security=true;async=true";
//填充数据集ds
DataSet ds = new DataSet();
SqlConnection conn = new SqlConnection(connstr);
SqlDataAdapter dadp = new SqlDataAdapter("select * from customers", conn);
dadp.Fill(ds);
//将数据集中表的所有行复制到目标表中
SqlBulkCopy bcp = new SqlBulkCopy(connstr);
bcp.DestinationTableName = "customers1";
bcp.WriteToServer(ds.Tables[0]);