Sqlserver資料庫批量匯入資料

2021-07-28 07:35:25 字數 2323 閱讀 8712

最近抽空整理了一下專案中運用到的公共方法,打算增加自己的dll檔案的內容。突然發現sqlserver資料批量插入的乙個東西。好像我的dll檔案裡面沒有,所以就加上了。這裡說明一下:專案中所有的公共檔案都是我自己建的,公共類庫中的大部分方法都是我自己寫的,不存在什麼洩露**不好的影響。並且這些**稀鬆平常,沒什麼高深的東西,所以想也沒想就直接放到我自己的dll檔案中了。

好了,廢話不多說,下面看看我**中的批量插入方法。這個其實沒什麼可將的,只能說是貼上**大家一起參考參考罷了。一下**只是我的第一稿,完全手寫,可能還有不正確的地方,請大家指正哈!

#region    表插入(批量插入資料)

/// /// 根據資料庫功能名稱型別返回相應的資料庫連線字串

///

///

///

delegate string getconnstringbydbtype(int databasetype);

/// /// 批量插入(請注意資料來源表的要求)

///

/// 資料來源集合(集合中資料例項物件,其模型和目標資料庫中的表的引數結構高度一致)

/// 資料物件模型

/// 自增列主鍵id

/// 資料庫伺服器中接收複製表的表名稱(目標表)

/// 資料庫名稱

/// 複製消耗的時間

///

public bool batchinsertdata(listsourcelist, t obj, string markname, string destinationtblname, int databasetype, out long spendtimevalue)

aimcolumns = columnlist.toarray();

datatable.columns.addrange(aimcolumns);

#endregion

//迴圈新增值到表中

for (int i = 0; i < sourcelist.count; i++)

datatable.rows.add(datarow);

}//資料庫連線字串獲取

getconnstringbydbtype gainconnstr = (dbnum) =>

else if (databasetype == 2)

else

};sqlbulkcopy bulkobj = new sqlbulkcopy(gainconnstr(databasetype));

//設定伺服器上面的表名(指定匯入的是哪乙個表中)

bulkobj.destinationtablename = destinationtblname;

bulkobj.batchsize = datatable.rows.count;

//資料庫操作連線物件

sqlconnection sqlconnection = getsqlconnection(databasetype);

sqlconnection.open();

if (datatable != null && datatable.rows.count > 0)

bulkobj.close();

sqlconnection.close();

stopwatch.stop();

result = true;

spendtimevalue = stopwatch.elapsedmilliseconds;

}catch (exception ex)

return result;

}#endregion

上面**中資料庫連線物件例項化和資料庫連線字串賦值我就不貼出**了,沒什麼營養的。應該是該有注釋的地方應該都已經寫得很清楚了,沒有注釋的地方目測大家應該都能看明白。看看上面應該還有一些地方需要改正才能讓**看上去更清爽。比如//連線字串的獲取,最後乙個else返回了空字串:這裡大家可以想象怎麼讓**改得更好看。還有上面引數傳入的資料來源集合以及集合裡面的例項物件或許應該做一些判斷才能繼續執行後續**,我當時寫的時候都沒考慮。上面的**最終目的只是為了介紹sqlserver批量資料插入的方法,並非是最終版本,還有好些限制的,比如:必須要有自增列主鍵的例項物件模型。不過也可以放到程式中直接執行了,哈哈,走你!

後面我又修改了幾行**,讓此方法看上去更加完美。並且也去掉了上面**的諸多限制(比如:必須要有自增列主鍵,獲取資料庫連線字串的值)。不過後續的**我就補貼了,貼上來沒什麼意義,上面的**應該可以直接拿去用了哈,其目的只是介紹sqlserver批量插入資料方法,所以後面最終版本就補貼**了。

附:這篇文章不講技術,我也講不出什麼技術的東西,只是以極少為主,希望大家多多指正**中不規範的地方,最後祝大家生活愉快!

solr連線sqlserver資料庫並匯入資料

新建的core資料夾下conf solrconfig.xml中加 config是上級節點 dataimport class org.apache.solr.handler.dataimport.dataimporthandler defaults config data config.xml str...

C 批量更新sql server資料庫資料

批量更新有兩種策略 第一種方式 拼接所有更新字串,在資料庫一次性執行,這樣減少資料更新時頻繁的連線斷開資料庫。第二種方式 把要更新的資料寫入資料庫全域性臨時表,然後利用sql語句更新,最後把原表中不存在的資料獲取到再批量寫入。以下是第二種方式的實現。該方式中有投機取巧的嫌疑,但是確實能對在單機大批量...

SQL Server資料庫中批量匯入資料

在軟體專案實施的時候,資料匯入一直是專案人員比較頭疼的問題。其實,在sql server中整合了很多成批匯入資料的方法。有些專案實施顧問頭疼的問題,在我們資料庫管理員眼中,是小菜一碟。現在的重點就是,如何讓使用者了解這些方法,讓資料匯入變得輕鬆一些。相信以下方法大家都用過了,溫故而知新哈,如果有更好...