使用事務和SqlBulkCopy批量插入資料

2022-02-09 01:58:38 字數 832 閱讀 4446

sqlbulkcopy是.net framework 2.0新增的類,位於命名空間system.data.sqlclient下,主要提供把其他資料來源的資料有效批量的載入到sql server表中的功能。類似與 microsoft sql server 包中名為 bcp 的命令列應用程式。但是使用 sqlbulkcopy 類可以編寫託管**解決方案,效能上優於bcp命令列應用程式,更優於如insert方式向sql server表載入大量資料。sqlbulkcopy可以應用到大批量資料的轉移上,而不管資料來源是什麼。

之前在做winform開發的時候,發現當datagridview資料量比較大的時候,用for迴圈非常耗時間與效能,通過查閱資料,了解到了sqlbulkcopy這種批量的資料轉移工具。

下述**實現了datagridview的批量資料插入。

如果datagridview的列與資料庫中的表結構不能完全對應的話,我們需要先將datagridview資料存放到乙個datatable 中,注意datatable 中的列需要與即將插入的表的列型別相容,名稱與列順序完全一樣。自增列隨便填寫乙個int型別的值即可,也可不寫,如果沒給自增列指定值的話,在後續的表對映關係中需要明確指出對應關係。因為我這裡是用迴圈來指定表對應關係的,所以對table的字段有嚴格的要求,其實也可以與資料庫表中的欄位名不一樣,但這樣就需要具體指出表之間的對應關係。

datatable table = new datatable();

table.columns.addrange(new datacolumn);

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

catch (exception ex)

finally

SSH 使用事務和不使用事務的區別

不使用事務時,每次呼叫hibernatetemplate的方法會立刻進行事務提交.而使用事務後,會在你配置的類的方法執行完成後再進行事務提交,如果乙個方法中同時進行了多次的插入 修改或刪除操作,會統一的進行提交或回滾,這樣可以保證資料操作會同時成功或失敗,保證資料的完整性.其實,我不懂。上面只是我在...

SSH 使用事務和不使用事務的區別

不使用事務時,每次呼叫hibernatetemplate的方法會立刻進行事務提交.而使用事務後,會在你配置的類的方法執行完成後再進行事務提交,如果乙個方法中同時進行了多次的插入 修改或刪除操作,會統一的進行提交或回滾,這樣可以保證資料操作會同時成功或失敗,保證資料的完整性.其實,我不懂。上面只是我在...

Ibatis使用事務

一 事務概念 事務是一種機制 是一種操作序列,它包含了一組資料庫操作命令,這組命令要麼全部執行,要麼全部不執行。因此事務是乙個不可分割的工作邏輯單元。在資料庫系統上執行併發操作時事務是作為最小的控制單元來使用的。這特別適用於多使用者同時操作的資料通訊系統。例如 訂票 銀行 保險公司以及 交易系統等。...