共用方式為


交易技術範例

更新:2007 年 11 月

這個範例會說明如何使用 .NET Framework 應用程式中的交易。它會利用從 SQL Server 資料庫中擷取值、讓使用者修改此值,然後將新值張貼到資料庫的方式,特別說明交易中的「認可」和「中止」功能。

注意事項:

若要建置及執行此範例,電腦上必須安裝 Microsoft SQL Server 2000 (含) 以後版本,且資料庫引擎必須設定使用 Windows 驗證。其他組態會要求您編輯 TxObj.cs 或 TxObj.vb 檔案中的 SQL 連接字串 (Connection String)。

如需使用這些範例的詳細資訊,請參閱下列主題:

若要建立 TxDemoDB 資料庫

  1. 開啟 [命令提示字元] 視窗,巡覽至 Technologies\ComponentServices\Transactions 目錄下其中一個語言特定子目錄。

  2. 在命令列輸入 osql -E -S (local)\SQLExpress -i TxDB.sql。或者,開啟 [SQL Server Query Analyzer] 視窗,載入 TxDB.sql,然後選擇 [執行]。

    這個動作會在您的 SQL Server 中建立新的 TxDemoDB 資料庫。

若要使用命令提示字元建置範例

  1. 開啟 [命令提示字元] 視窗,巡覽至 Technologies\ComponentServices\Transactions 目錄下的其中一個語言特定子目錄,或使用上述用來建立 TxDemoDB 資料庫的相同命令視窗。

  2. 根據您選擇的程式設計語言,在命令列輸入 msbuild TransactionsCS.sln 或 msbuild TransactionsVB.sln。

若要使用 Visual Studio 建置範例

  1. 開啟 [Windows 檔案總管],並巡覽至此範例任一程式設計語言的子目錄。

  2. 根據您選擇的程式設計語言,按兩下 [TransactionsCS.sln] 或 [TransactionsVB.sln] 的圖示,在 Visual Studio 中開啟這個檔案。

  3. 在 [建置] 功能表上,按一下 [建置方案]。

若要執行範例

  1. 開啟 [命令提示字元] 視窗或 [Windows 檔案總管],巡覽至包含新建置之可執行檔的目錄。

  2. 在命令列中輸入 TxDemo.exe,或在 [Windows 檔案總管] 中按兩下可執行檔的圖示。

  3. 系統會從資料庫讀取目前的值加以顯示。

  4. 在 [新值] 欄位中輸入一個等於或大於 0 且小於或等於 10 的數字,然後按一下 [張貼] 按鈕。

  5. 「即將認可交易」訊息應該會隨即出現。按一下 [確定]。現在 [目前值] 欄位已經更新為您所輸入的值。

  6. 在 [新值] 欄位中輸入一個小於 0 或大於 10 的數字。按一下 [張貼] 按鈕。

  7. 「即將中止交易,因為新值 ([yourvalue]) <0 或 >10」訊息應該會隨即出現。按一下 [確定]。請注意,[目前值] 欄位不會變更。這是因為雖然在交易時變更了目前值,但在復原交易後,這個值又變回原來的值。

  8. 現在請試著使用 [自動張貼] 按鈕處理相同的資料。您會注意到,當範例中止交易時,會擲出 COMException。這是為了告知 AutoComplete 執行中止動作。

若要解除安裝範例

  1. 在 [命令提示字元] 視窗中,巡覽至您執行 msbuild.exe 或是開啟 .sln 檔案的目錄。

  2. 根據您選擇的程式設計語言,輸入 msbuild.exe TransactionsVB.vbproj /t:Clean 或 msbuild.exe TransactionsCS.csproj/t:Clean。這會使用 /u 參數呼叫 regsvcs.exe 和 gacutil.exe,從 COM+ 類別目錄和全域組件快取中移除範例檔案。

  3. 在命令列輸入 osql -E -S (local)\SQLExpress -i TxDBClean.sql。或者,開啟 [SQL Server Query Analyzer] 視窗,載入 TxDBClean.sql,然後選擇 [執行]。這個動作會從 SQL Server 中移除 TXDemoDB 資料庫。

需求

**.NET Framework 版本:**2.0、1.1、1.0

備註

交易是一整組的作業。您必須執行全部的作業,或是完全不執行任何作業。只要交易中有任何一個作業失敗,先前的所有作業都必須回復,以確保一致性。

如需二進位碼之建立和註冊步驟範例的詳細資訊,請參閱原始程式碼檔案中的註解。在「元件服務」管理工具中,C# 元件名稱為 TxDemoServerCS.TxObject,VB 版本元件名稱為 TxDemoServerVB.TxObject。

請參閱

概念

本機交易 (ADO.NET)

參考

AutoCompleteAttribute

ContextUtil

ServicedComponent

System.ComponentModel

System.Data

System.Data.SqlClient

System.Drawing

System.EnterpriseServices

System.Reflection

System.Runtime.InteropServices

System.Runtime.Serialization

System.Windows.Forms

TransactionAttribute

TransactionOption

WebMethodAttribute