C#一次性向数据库插入上万条数据的方法就是这张表,求一下代码的写法
http://blog.sina.com.cn/s/blog_4c6e822d0102e0qu.html
使用SqlBulkCopy 进行批量操作
DateTime begin = DateTime.Now;
string connectionString = "";
using(SqlConnection conn = new SqlConnection(connectionString)){
conn.Open();
SqlDataAdapter sd = new SqlDataAdapter();
sd.SelectCommand = new SqlCommand("select top 200 devid,data_time,data_value from CurrentTest", conn);
DataSet dataset = new DataSet();
sd.Fill(dataset);
Random r = new Random(1000);
sd.UpdateCommand = new SqlCommand("update CurrentTest "
+ " set data_time = @data_time,data_value = @data_value where devid = @devid", conn);
sd.UpdateCommand.Parameters.Add("@data_time", SqlDbType.Char, 19, "data_time");
sd.UpdateCommand.Parameters.Add("@data_value", SqlDbType.Int, 4, "data_value");
sd.UpdateCommand.Parameters.Add("@devid", SqlDbType.Char, 20, "devid");
sd.UpdateCommand.UpdatedRowSource = UpdateRowSource.None;
sd.UpdateBatchSize = 0;
for (int count = 0; count < 100000;)
{
for (int i = 0; i < 200; i++,count++)
{
dataset.Tables[0].Rows[i].BeginEdit();
dataset.Tables[0].Rows[i]["data_time"] = "2222-22-22 22:22:22";
dataset.Tables[0].Rows[i]["data_value"] = 100;
dataset.Tables[0].Rows[i]["devid"] = "DEVID"+count;
dataset.Tables[0].Rows[i].EndEdit();
}
sd.Update(dataset.Tables[0]);
}
dataset.Tables[0].Clear();
sd.Dispose();
dataset.Dispose();
conn.Close();
}
TimeSpan ts = DateTime.Now - begin;
MessageBox.Show("ts = " + ts.TotalMilliseconds);
insert all into TableName(TrackType, DiverName,OreType) values('大别拉斯','张三',1)
into TableName(TrackType, DiverName,OreType) values('大别拉斯','张三',1)
into TableName(TrackType, DiverName,OreType) values('大别拉斯','张三',1)
into TableName(TrackType, DiverName,OreType) values('大别拉斯','张三',1)
into TableName(TrackType, DiverName,OreType) values('大别拉斯','张三',1)
into TableName(TrackType, DiverName,OreType) values('大别拉斯','张三',1)
.....
select 1 from DUAL