新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
WCF控制事務(wù)具體操作代碼解讀
WCF開發(fā)工具中對于事務(wù)的相關(guān)處理是一個比較重要的操作技術(shù),我們在學(xué)習(xí)的過程中需要對此加強注意力。把事務(wù)放到客戶端控制,實際上WCF控制事務(wù)還是在服務(wù)器端的,只不過操作權(quán)給了客戶端而已。思路和WebService實現(xiàn)是一樣的,即用WCF的狀態(tài)化記住控制事務(wù)所需的對象,然后給客戶端提供接口來操作這些對象。

在欽南等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站制作、網(wǎng)站建設(shè) 網(wǎng)站設(shè)計制作按需設(shè)計網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都全網(wǎng)營銷,成都外貿(mào)網(wǎng)站建設(shè),欽南網(wǎng)站建設(shè)費用合理。
閑話少說,WCF控制事務(wù)代碼如下:
服務(wù)器端代碼:
- [ServiceContract(SessionModeSessionMode=SessionMode.Required)]
- public interface IMyService{
- [OperationContract(IsTerminating=true)]
- void ReleaseSession();
- [OperationContract]
- void BeginTransaction();
- [OperationContract]
- void CommitTransaction();
- [OperationContract]
- void RollbackTransaction();
- [OperationContract]
- int ExecuteNonQuery(string strCmdText);}
- [ServiceBehavior(InstanceContextModeInstanceContextMode=
InstanceContextMode.PerSession)]- public class MyService : IMyService{private string strConnString =
"server=namihei2\\KHOS;database=AEGIS_TEST;- uid=sa;pwd=Password01!";
- private SqlConnection mySqlConnection;
- private SqlTransaction mySqlTransaction;
- public void ReleaseSession(){
- if (mySqlConnection.State == ConnectionState.Open)
{mySqlConnection.Close();- }}
- public void BeginTransaction(){
- mySqlConnection = new SqlConnection(strConnString);
- mySqlConnection.Open();
- mySqlTransaction = mySqlConnection.BeginTransaction();
- }
- public void CommitTransaction(){
- mySqlTransaction.Commit();
- }
- public void RollbackTransaction(){mySqlTransaction.Rollback();
- }
- public int ExecuteNonQuery(string strCmdText)
- {
- try{SqlCommand objSqlCommand = new SqlCommand(strCmdText);
- objSqlCommand.Connection = mySqlConnection;
- objSqlCommand.Transaction = mySqlTransaction;
- return objSqlCommand.ExecuteNonQuery();
- }
- catch (Exception ex){
- throw new FaultException(ex.Message);
- }}}
客戶端代碼:
- static void Main(string[] args){
- Console.WriteLine("Session Transaction Begin");
- SessionTrans.MyServiceClient serviceProxy =
new ConsoleTest.SessionTrans.MyServiceClient();- try{serviceProxy.BeginTransaction();
- serviceProxy.ExecuteNonQuery("update ATMAccount set Amount = 1000");
- serviceProxy.ExecuteNonQuery("insert into ATMLog
(AccountNumber,OperationType)- values ('888', 'good')");
- //serviceProxy.ExecuteNonQuery("insert into ATMLog
(AccountNumber,OperationType)- values ('888', 'goodgoodgoodgoodgoodgoodgoodgoodgoodgoodgoodgood
goodgoodgoodgoodgood')");- serviceProxy.CommitTransaction();
- }
- catch (Exception ex){Console.WriteLine(ex.Message);
- serviceProxy.RollbackTransaction();
- }
- finally{serviceProxy.ReleaseSession();
- serviceProxy.Close();
- }
- Console.WriteLine("Session Transaction End");
- Console.Read();
以上就是對WCF控制事務(wù)的相關(guān)介紹。
【編輯推薦】
- WCF框架基本解析方式介紹
- WCF端點配置正確編程方式解讀
- WCF服務(wù)合同基本內(nèi)容概述
- WCF行為控制代碼示例應(yīng)用解讀
- WCF宿主模式主要概念總結(jié)
本文名稱:WCF控制事務(wù)具體操作代碼解讀
分享地址:http://m.5511xx.com/article/ccdissd.html


咨詢
建站咨詢
