強型別Dataset使用事務(改進原有方法)

2021-07-07 08:40:31 字數 2493 閱讀 1096

以下部份**:

關於強型別dataset的用法和好處,我就不再多說,網上關於這方面的資料很多 , 感興趣的話可以在google搜一下。

我們直奔主題,好處是很多,但若使用事務的話就不方便了。最近通過查詢國外的資料,總於找到解決的方法。經過自己測試發現很好用,所以把**貼出來,給正處於這方面困惑的朋友解答:

首先寫乙個類檔案,**如下:

public class helperta

public static sqltransaction begintransaction(object tableadapter, isolationlevel isolationlevel)

/// /// gets the connection from the specified table adapter.

///

private static sqlconnection getconnection(object tableadapter)

/// /// sets the connection on the specified table adapter.

///

private static void setconnection(object tableadapter, sqlconnection connection)

/// /// enlists the table adapter in a transaction.

///

public static void settransaction(object tableadapter, sqltransaction transaction)

}

然後在你使用tableadapter 的類檔案中使用上面的類:

public int inserttest(book book)

using (userevaluatetableadapter evaluateadapter = new userevaluatetableadapter())

int? result = 0;

using (tb_booktableadapter bookadapter = new tb_booktableadapter())

transaction.commit();

}catch

finally

return 1;

}

以上內容**nfbing的專欄:

使用後發現不能針對tableadapter自動生成的insert/update/delete進行事務處理,可以對新增的查詢(sql或者儲存過程)進行事務處理。所以如果想使用xxtableadapter.update(xxtable)一類的更新就有問題了。方法是自己寫**為tableadapter加帶事務的方法,但沒有這個通用性好,需要每個去編寫。

經過實驗,將原來的**部份更改,並更新相應的tableadapter類即可實現較好的效果:

更新後類**:

using system;

using system.data;

using system.data.sqlclient;

using system.reflection;

/// /// 為強型別的dataset中的tableadapter提供事務支援

///

public class helperta

/// /// 開始事務,第乙個tableadapter中使用,可設定接受髒讀及其它引數

///

///

/// 事務鎖定行為

/// 返回乙個sqltransaction

public static sqltransaction begintransaction(object tableadapter, isolationlevel isolationlevel)

/// /// gets the connection from the specified table adapter.

///

private static sqlconnection getconnection(object tableadapter)

/// /// 設定 table adapter 的連線屬性(自動呼叫)

///

private static void setconnection(object tableadapter, sqlconnection connection)

/// /// 將新的tableadapter加入到事務中

///

///

///

public static void settransaction(object tableadapter, sqltransaction transaction)

}

強型別的DataSet

dataset大家都比較熟悉了,它就是我們所說的離線資料集。但是不能儲存大量的資料,我們可以使用強型別的dataset也可以使用弱型別的dataset.弱型別的dataset使用如下 dataset dataset new dataset 建立乙個dataset 取得連線字串 string conn...

強型別DataSet的使用簡明教程

關於弱型別 dataset的缺點 因此,vs為我們提供強型別dataset的自動生成功能。下面簡單的來使用一下。首先,建乙個控制台工程,然後再專案名那右鍵新增新項,選擇乙個基於服務的資料庫,取名 在資料庫中新 建乙個表,表名為t person,表 結構如下 然後為資料庫中新建乙個表並新增一些資料。再...

Ibatis使用事務

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