博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
asp.net 3.5 csharp 实现事务
阅读量:4573 次
发布时间:2019-06-08

本文共 4368 字,大约阅读时间需要 14 分钟。

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 

 

转载于:https://www.cnblogs.com/geovindu/archive/2010/06/15/1758742.html

你可能感兴趣的文章
Asp.Net webconfig中使用configSections的用法
查看>>
mysql 二进制日志
查看>>
阻止putty变成inactive
查看>>
TP框架代码学习 学习记录 3.2.3
查看>>
doc文档生成带目录的pdf文件方法
查看>>
js数组,在遍历中删除元素(用 for (var i in arr)是无效的 )
查看>>
通过前端上传图片等文件的方法
查看>>
在 OC 中调用 Swift 代码
查看>>
Android仿腾讯应用宝 应用市场,下载界面, 有了进展button
查看>>
安卓|五大逆向软件下载
查看>>
5 OK6410裸机调试(不用Jlink)
查看>>
“模板”学习笔记(5)-----编译器在处理函数模板的时候都干了啥
查看>>
教你用shell写CGI程序
查看>>
窗口 对话框 Pop Dialog 示例
查看>>
ubuntu(centos) server安装vmware tools
查看>>
数据结构之最大不重复串
查看>>
为什么要配置sdk-tools/platform-toools?
查看>>
自己动手开发更好用的markdown编辑器-07(扩展语法)
查看>>
maven dependency:tree中反斜杠的含义
查看>>
队列的循环队列
查看>>