最近做了一个功能, 操作的数据量特别大,
一次 往数据库 插入上万条数据. 我用了 循环添加, 和 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...
来源: http://www.bubuko.com/infodetail-3106901.html