DataAdapter 的插入代码
public static bool UpdateDataSet(SqlConnection con, DataSet dataset, string tableName)
{
string sql = string.Format(@"select * from {0} where 1=0", tableName);
using (SqlDataAdapter da = new SqlDataAdapter(sql,con))
{
DataSet ds = new DataSet();
da.Fill(ds,tableName);
SqlCommandBuilder cb = new SqlCommandBuilder(da);
da.InsertCommand = cb.GetInsertCommand();
ds = dataset;
return da.Update(ds, tableName)>0;
}
}
耗时:
SqlBulkCopy的插入代码
public static void DataSetInsert(SqlConnection con,string tableName,DataSet ds)
{
SqlBulkCopy sbc = new SqlBulkCopy(con);
sbc.DestinationTableName = tableName;
sbc.BatchSize = ds.Tables[0].Rows.Count;
sbc.WriteToServer(ds.Tables[0]);
}
耗时:
结论
结果显而易见,使用SqlBulkCopy进行性批量插入更加简单有效。