zoukankan      html  css  js  c++  java
  • 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 
  • 相关阅读:
    Android自动化测试解决方案
    Oracle数据库的DML命令的处理过程详解
    Oracle数据库的BULK COLLECT用法之批量增删改
    建设DevOps能力,实现业务敏捷
    强大的C# Expression在一个函数求导问题中的简单运用
    Visual Studio 11开发者预览版发布(附下载)
    js table隔行变色
    编译原理语法推导树
    巧用数据库归档技术解决性能下降问题
    编译原理正规式和有限自动机
  • 原文地址:https://www.cnblogs.com/geovindu/p/1758742.html
Copyright © 2011-2022 走看看