asp.net 3.5 csharp 实现事务

ExpandedBlockStart.gif asp.net 3.5 csharp 实现事务代码
  1  using  System;
  2  using  System.Collections.Generic;
  3  using  System.Linq;
  4  using  System.Web;
  5  using  System.Web.UI;
  6  using  System.Web.UI.WebControls;
  7  using  System.Data;
  8  using  System.Data.SqlClient;
  9  using  System.Globalization;
 10  using  System.IO;
 11  using  System.Text;
 12  using  System.Security.Cryptography;
 13  using  System.Web.UI.HtmlControls;
 14  using  System.Transactions; // 必需添加引用
 15 
 16 
 17 
 18  public   partial   class  transaction : System.Web.UI.Page
 19  {
 20       private  SqlConnection oConn  =   null ;
 21 
 22       private   string  strMessage;
 23 
 24       private  SqlTransaction transactions  =   null ;
 25 
 26       protected   void  Page_Load( object  sender, EventArgs e)
 27      {
 28          Response.Charset  =   " utf-8 " ;
 29          Response.ContentEncoding  =  Encoding.UTF8;
 30          Session.CodePage  =   65001 ;
 31          Page.Header.Title  =   " 缔友计算机信息技术有限公司,涂聚文 너를 환 영한다 " ;
 32 
 33          HtmlMeta meta  =   new  HtmlMeta();
 34          meta.Name  =   " keywords " ;
 35          meta.Content  =   " 捷为工作室,締友計算機信息技術有限公司,塗聚文,开发国际化多种语言,兼容各浏览器的网站,个性化应用软件 너를 환 영한다 " // SiteMap.CurrentNode["keywords"];
 36          Page.Header.Controls.AddAt( 1 , meta);
 37 
 38          HtmlMeta meta1  =   new  HtmlMeta();
 39          meta1.Name  =   " description " ;
 40          meta1.Content  =   " China,Guangdong Province,Shenzhen 너를 환 영한다 " ;
 41          Page.Header.Controls.AddAt( 2 , meta1);
 42 
 43          HtmlMeta author  =   new  HtmlMeta();
 44          author.Name  =   " Author " ;
 45          author.Content  =   " 涂聚文 geovindu@163.com " ;
 46          Page.Header.Controls.AddAt( 3 , author);
 47 
 48          HtmlLink cssLink  =   new  HtmlLink();
 49          cssLink.Href  =   " ~/styles.css " ;
 50          cssLink.Attributes.Add( " rel " " stylesheet " );
 51          cssLink.Attributes.Add( " type " " text/css " );
 52          Header.Controls.Add(cssLink);
 53 
 54          HtmlLink ico  =   new  HtmlLink();
 55          ico.Href  =   " favicon.ico " ;
 56          ico.Attributes.Add( " rel " " icon " );
 57          ico.Attributes.Add( " type " " image/x-icon " );
 58          Header.Controls.Add(ico);
 59      }
 60       ///   <summary>
 61       ///  操作事务
 62       ///   </summary>
 63       ///   <param name="sender"></param>
 64       ///   <param name="e"></param>
 65       protected   void  Button1_Click( object  sender, EventArgs e)
 66      {
 67           /*
 68           --sql脚本事务
 69  create procedure proc_EdmEmail_insert 
 70  as
 71  begin
 72      begin transaction        
 73      insert into EdmEamil(e_mail,vipno) values('geovindu@jw28.com','edm00001')
 74      insert into EdmEamil(e_mail,vipno) values('463588883@qq.com','edm00002')
 75 
 76        if(@@error<>0)
 77           begin
 78              --出错后回滚事务
 79              rollback transaction
 80              return 0;
 81           end;
 82         --提交事务
 83         commit transaction
 84             return 1;
 85       end;
 86  GO
 87 
 88  EXEC proc_EdmEmail_insert
 89           
 90            */
 91           try
 92          {
 93              oConn  =   new  SqlConnection();
 94              oConn.ConnectionString  =   " server=.; database=Vip; uid=sa; pwd=0214; " ;
 95              SqlCommand oCmd  =  oConn.CreateCommand();
 96              oConn.Open();
 97              transactions  =  oConn.BeginTransaction(); // 啟動一個事務
 98              oCmd.Transaction  =  transactions;
 99 
100              oCmd.CommandText  =   " insert into EdmEamil(e_mail,vipno) values( ' "   +   this .TextBox1.Text.Trim()  +   " ',' "   +   this .TextBox2.Text.Trim()  +   " ') " ;
101              oCmd.ExecuteNonQuery();
102 
103 
104 
105               // 如果整個事務操作執行正確,則提效事務
106              transactions.Commit();
107              strMessage  =   " 成功完成 " ;
108          }
109           catch  (Exception ex)
110          {
111              
112              strMessage  =  ex.Message.ToString();
113               try
114              {
115                   // 如果插入數據操作失敗,則事務向前回滾
116                  transactions.Rollback();
117                  strMessage  =  strMessage  +   " 事務向前回滾 " ;
118                  oConn.Close();
119 
120              }
121               catch  (Exception exs)
122              {
123                  strMessage  = strMessage +  exs.Message.ToString();
124              }
125              
126          }
127          Response.Write( ""   +  strMessage  +   "" );
128      }
129       ///   <summary>
130       ///  
131       ///   </summary>
132       ///   <param name="sender"></param>
133       ///   <param name="e"></param>
134       protected   void  Button2_Click( object  sender, EventArgs e)
135      {
136           try
137          {
138               using  (TransactionScope scope  =   new  TransactionScope())
139              {
140                  oConn  =   new  SqlConnection();
141                  oConn.ConnectionString  =   " server=.; database=Vip; uid=sa; pwd=0214; " ;
142                  SqlCommand oCmd  =  oConn.CreateCommand();
143                  oConn.Open();
144 
145                  oCmd.CommandText  =   " insert into EdmEamil(e_mail,vipno) values( ' "   +   this .TextBox1.Text.Trim()  +   " ',' "   +   this .TextBox2.Text.Trim()  +   " ') " ;
146                  oCmd.ExecuteNonQuery();
147 
148 
149 
150                  scope.Complete();
151                  strMessage  =   "" ;
152 
153              }
154          }
155            catch (TransactionException ett)
156          {
157              strMessage  =   " 事務出錯 " ;
158              strMessage  = strMessage +  ett.Message.ToString();
159           }        
160           catch  (Exception ex)
161          { strMessage  =  strMessage  +  ex.Message.ToString(); }
162      }
163  }
164 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值