SQL Server批量插入批量更新工具類

2021-09-16 13:00:17 字數 1481 閱讀 7319

思路:

批量插入,使用sqlbulkcopy

批量更新,定義臨時表,使用sqlbulkcopy批量插入臨時表,用sql語句更新臨時表資料到實際表

定義:

/// /// 批量插入

///

///

///

/// 資料庫表名,不傳表示取泛型t的型別名稱

/// 欄位名陣列,不傳表示取泛型t的所有屬性名稱

///

public bool sqlbulkcopy(ilistlst, string tablename = "", string columnnames = null) {}

/// /// 批量插入

///

///

///

/// 資料庫表名,空或null表示取泛型t的型別名稱

/// 字段對映字典

///

public bool sqlbulkcopy(ilistlst, string tablename, dictionarycolumnlist) {}

/// /// 批量更新

///

///

///

/// 臨時表名

/// 臨時表字段定義

/// update sql語句

/// 臨時表批量插入欄位名陣列,不傳表示取泛型t的所有屬性名稱

///

public bool batchupdate(ilistlst, string tablename, string fieldstr, string updatestr, string columnnames = null) {}

呼叫

dbhelper dbhelper = new dbhelper("鏈結字串");

dbhelper.sqlbulkcopy(lst);

dbhelper.sqlbulkcopy(lst, "dbmodelname");

dbhelper.sqlbulkcopy(lst, "dbmodelname", new string );

dictionarycolumnlist = new dictionary();

columnlist.add("id", "id");

columnlist.add("name", "name");

columnlist.add("contact", "contact");

dbhelper.sqlbulkcopy(lst, "dbmodelname", columnlist);

dbhelper.batchupdate(lst, "#tmp", "id int,contact varchar(100)"

, "update a set a.contact=b.contact from dbmodelname a inner join #tmp b on a.id=b.id where b.id is not null");

SQL Server批量插入資料

有這樣乙個表 operatorinfo 欄位有 operator no operator pwd operator name group id group no skill level operator type pausenum operator acd type 其中 operator no 需...

sql server 批量插入資料demo

測試表結構如下 create table dbo tblphonenum id bigint identity 1,1 not null,phonenum nvarchar 50 not null,name nvarchar 50 not null,source nvarchar 50 null,c...

Python 批量插入SQL Server 資料庫

需要將一批資料插入sql server 資料庫,經過查證可以採用批量插入的方法,遇到一些坑,特記錄一下 批量插入方法如下 sql 1 insert into f rnfl mt2 id,fymdh,ymdh,rn,unitname,comments values data 1,2020 06 10 ...