asp.net 3.5 csharp 实现事务

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 
原文地址:https://www.cnblogs.com/geovindu/p/1758742.html