資料庫 一次插入幾萬條資料

2022-03-25 09:28:36 字數 983 閱讀 3407

最近做了乙個功能, 操作的資料量特別大,

一次往資料庫  插入上萬條資料。我用了 迴圈新增, 和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)

然後把這個dt  copy到 指定表裡面就行了

//例項化乙個 sqlbulkcopy 物件
using (sqlbulkcopy bulkcopy = new sqlbulkcopy(connectionstring, sqlbulkcopyoptions.keepidentity |sqlbulkcopyoptions.useinternaltransaction))

以上是我的 比較簡潔的**,可以自己封裝哦。end..

C 一次性向資料庫插入上萬條資料的方法

一次性插入上萬條資料的寫法 1.datatable批量新增 有事務 資料來源 目標表 bool bool true using sqlconnection con new sqlconnection connectionstring catch return bool 2.mssql使用sqlbul...

批量插入100萬條資料

建立資料庫 create database create database bulktestdb gouse bulktestdb go create table create table bulktesttable id int primary key,username nvarchar 32 p...

一次性插入上萬條資料的寫法

1.datatable批量新增 有事務 資料來源 定義資料源和目標源列的關係集合 目標表 public static destinationtablename catch return bool 2.mssql使用sqlbulkcopy,傳資料來源,表名,列影射,我匯入150萬幾秒完成 使用sqlb...