自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

WCF控制事務(wù)具體操作代碼解讀

開發(fā) 開發(fā)工具
WCF控制事務(wù)其實是在服務(wù)器端上進行控制的。我們接下來將會通過一段代碼示例來為大家詳細解讀相關(guān)操作方法,方便大家理解。

WCF開發(fā)工具中對于事務(wù)的相關(guān)處理是一個比較重要的操作技術(shù),我們在學習的過程中需要對此加強注意力。把事務(wù)放到客戶端控制,實際上WCF控制事務(wù)還是在服務(wù)器端的,只不過操作權(quán)給了客戶端而已。思路和WebService實現(xiàn)是一樣的,即用WCF的狀態(tài)化記住控制事務(wù)所需的對象,然后給客戶端提供接口來操作這些對象。

閑話少說,WCF控制事務(wù)代碼如下:

服務(wù)器端代碼:

  1. [ServiceContract(SessionModeSessionMode=SessionMode.Required)]  
  2. public interface IMyService{  
  3. [OperationContract(IsTerminating=true)]  
  4. void ReleaseSession();  
  5. [OperationContract]  
  6. void BeginTransaction();  
  7. [OperationContract]  
  8. void CommitTransaction();  
  9. [OperationContract]  
  10. void RollbackTransaction();  
  11. [OperationContract]  
  12. int ExecuteNonQuery(string strCmdText);}  
  13. [ServiceBehavior(InstanceContextModeInstanceContextMode=
    InstanceContextMode.PerSession)]  
  14. public class MyService : IMyService{private string strConnString =
     "
    server=namihei2\\KHOS;database=AEGIS_TEST;  
  15. uid=sa;pwd=Password01!";  
  16. private SqlConnection mySqlConnection;  
  17. private SqlTransaction mySqlTransaction;  
  18. public void ReleaseSession(){  
  19. if (mySqlConnection.State == ConnectionState.Open)
    {mySqlConnection.Close();  
  20. }}  
  21. public void BeginTransaction(){  
  22. mySqlConnection = new SqlConnection(strConnString);  
  23. mySqlConnection.Open();  
  24. mySqlTransaction = mySqlConnection.BeginTransaction();  
  25. }  
  26. public void CommitTransaction(){  
  27. mySqlTransaction.Commit();  
  28. }  
  29. public void RollbackTransaction(){mySqlTransaction.Rollback();  
  30. }  
  31. public int ExecuteNonQuery(string strCmdText)  
  32. {  
  33. try{SqlCommand objSqlCommand = new SqlCommand(strCmdText);  
  34. objSqlCommand.Connection = mySqlConnection;  
  35. objSqlCommand.Transaction = mySqlTransaction;  
  36. return objSqlCommand.ExecuteNonQuery();  
  37. }  
  38. catch (Exception ex){  
  39. throw new FaultException(ex.Message);  
  40. }}}  

客戶端代碼:

  1. static void Main(string[] args){  
  2. Console.WriteLine("Session Transaction Begin");  
  3. SessionTrans.MyServiceClient serviceProxy = 
    new ConsoleTest.SessionTrans.MyServiceClient();  
  4. try{serviceProxy.BeginTransaction();  
  5. serviceProxy.ExecuteNonQuery("update ATMAccount set Amount = 1000");  
  6. serviceProxy.ExecuteNonQuery("insert into ATMLog
    (AccountNumber,OperationType)  
  7. values ('888', 'good')");  
  8. //serviceProxy.ExecuteNonQuery("insert into ATMLog
    (AccountNumber,OperationType)   
  9. values ('888', 'goodgoodgoodgoodgoodgoodgoodgoodgoodgoodgoodgood
    goodgoodgoodgoodgood')");  
  10. serviceProxy.CommitTransaction();  
  11. }  
  12. catch (Exception ex){Console.WriteLine(ex.Message);  
  13. serviceProxy.RollbackTransaction();  
  14. }  
  15. finally{serviceProxy.ReleaseSession();  
  16. serviceProxy.Close();  
  17. }  
  18. Console.WriteLine("Session Transaction End");  
  19. Console.Read();  

以上就是對WCF控制事務(wù)的相關(guān)介紹。

【編輯推薦】

  1. WCF框架基本解析方式介紹
  2. WCF端點配置正確編程方式解讀
  3. WCF服務(wù)合同基本內(nèi)容概述
  4. WCF行為控制代碼示例應(yīng)用解讀
  5. WCF宿主模式主要概念總結(jié)
責任編輯:曹凱 來源: qqread.com
相關(guān)推薦

2010-03-02 09:39:11

保護WCF服務(wù)

2010-02-24 13:06:27

WCF使用Nhiber

2010-03-01 14:56:48

WCF服務(wù)引用

2010-03-01 17:28:25

WCF Stream對

2010-02-24 17:41:05

WCF集合反序列化

2010-03-02 14:41:00

WCF行為控制

2009-12-30 15:47:40

Silverlight

2011-03-17 09:06:58

iptables映射端口

2010-08-02 17:20:12

nfs啟動Linux

2009-12-31 15:36:13

SilverLight

2010-07-26 13:30:23

2009-12-31 15:36:13

SilverLight

2010-08-02 12:34:09

ADSL代理設(shè)置

2009-12-30 16:48:52

Silverlight

2009-12-09 09:28:12

配置靜態(tài)路由

2010-05-27 14:29:53

Linux查看進程

2010-07-15 19:46:40

關(guān)閉Telnet 23

2010-04-02 08:42:32

Oracle 游標

2010-04-01 17:25:46

Oracle死鎖進程

2010-02-03 13:26:53

C++計時
點贊
收藏

51CTO技術(shù)棧公眾號