最近做了一个功能, 操作的数据量特别大,
一次 往数据库 插入上万条数据。我用了 循环添加, 和EF封装的添加功能。
两次方式速度都非常慢,一万条数据都要近一分钟的时间。
在网上 查找资料后, 可以创建一个Datatable对象,然后把数据都赋值给这个Datatable对象的列。
然后Copy到数据库就行了。
下面这段代码是:实例化一个Datatable, 然后确定所有的列。列名最好于表里的字段一样哦
然后循环你的 大数据,每次循环都创建一列,添加到Datatable。
Datatable dt=new Datatable //创建Datatbel数据源
//确定DataTable字段的类型
dt.Columns.Add("ProductID", typeof(int));
dt.Columns.Add("TracingCode", typeof(string));
dt.Columns.Add("Createtime", typeof(DateTime));
//循环list数组, 每循环一个,创建一行
//然后添加到DataTable里面
foreach (es_Tracing tracing in TracingList)
{
DataRow dr = dt.NewRow();
dr["ProductID"] = tracing.ProductID;
dr["TracingCode"] = tracing.TracingCode;
dr["Createtime"] = tracing.Createtime;
dt.Rows.Add(dr);
}
然后把这个dt Copy到 指定表里面就行了
把GetDataTableData(pid,count)换成你的 dt就行了, 或者你自己封装方法
end...
原文地址:https://www.cnblogs.com/liuzheng0612/p/11104418.html