C#中事务处理和非事务处理方法实例分析
作者:罪恶的花生 发布时间:2023-12-23 08:09:13
标签:C#,事务处理
本文实例讲述了C#中事务处理和非事务处理方法。分享给大家供大家参考。具体如下:
C#代码如下:
String connectionString = ConfigurationManager.ConnectionStrings["DB_Constr"].ToString();
SqlConnection conn = null;
SqlTransaction trans = null;
try {
conn = new SqlConnection(connectionString);
if (conn.State != ConnectionState.Open) conn.Open();
//开启事务,可以指定事无级别。默认为提交才可以查询
trans = conn.BeginTransaction();
//save(conn, trans);
DbUtils.commit(trans);
} catch (Exception ex) {
DbUtils.rollback(trans);
ClientScript.RegisterStartupScript(this.GetType(), "错误提示", "<script>alert('" + StringUtil.toJsStr(ex.Message) + "');</script>");
} finally {
DbUtils.closeQuietly(conn, trans);
}
String connectionString = ConfigurationManager.ConnectionStrings["DB_Constr"].ToString();
SqlConnection conn = null;
try {
conn = new SqlConnection(connectionString);
if (conn.State != ConnectionState.Open) conn.Open();
} catch (Exception ex) {
ScriptManager.RegisterStartupScript(this, this.GetType(), "mess", "<script>alert('"+StringUtil.toJsStr(ex.Message)+"')</script>", false);
} finally {
DbUtils.closeQuietly(conn);
}
StringUtil.cs如下:
using System;
using System.Collections.Generic;
using System.Text;
namespace Tools{
public sealed class StringUtil {
public static bool isEmpty(String str) {
if (str == null) return true;
if (str.Length == 0) return true;
if (str == String.Empty) return true;
return false;
}
public static bool isNotEmpty(String str) {
return !isEmpty(str);
}
public static String toJsStr(String str) {
str = str.Replace("'", "\\'");
str = str.Replace("\r", "");
str = str.Replace("\n", "\\n");
return str;
}
public static void Main() {
Console.Write(isNotEmpty(null));
Console.Read();
}
}
}
DbUtils.cs如下:
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Data;
namespace Tools{
public class DbUtils {
public static SqlConnection getConnection(string connectstr) {
SqlConnection conn = new SqlConnection(connectstr);
if (conn.State != ConnectionState.Open) {
conn.Open();
}
return conn;
}
public static void closeQuietly(SqlConnection conn) {
try {
close(conn);
} catch { }
}
public static void closeQuietly(SqlTransaction trans) {
try {
close(trans);
} catch { }
}
public static void close(SqlConnection conn) {
if (conn != null) {
conn.Close();
conn.Dispose();
}
}
public static void close(SqlTransaction trans) {
if (trans != null) {
trans.Dispose();
}
}
public static void closeQuietly(SqlConnection conn, SqlTransaction trans) {
closeQuietly(trans);
closeQuietly(conn);
}
public static void commit(SqlTransaction trans) {
try {
if(trans!=null) trans.Commit();
} catch{ }
}
public static void rollback(SqlTransaction trans) {
try {
if (trans != null) trans.Rollback();
} catch { }
}
}
}
希望本文所述对大家的C#程序设计有所帮助。
0
投稿
猜你喜欢
- 本文实例为大家分享了Android自定义View画圆的具体代码,供大家参考,具体内容如下引入布局<?xml version="
- Mybatis 入参方式单个基本类型或 String 参数在 mapper 文件中随便写<select id=""
- 目录前言解决方案前言我们在开发Spring应用时可能会不小心注入两个相同类型的Bean,比如实现了两个相同Service接口的类,示例伪代码
- 使用filter设置要排除的URL@WebFilter(urlPatterns = "/*")@Order(value
- 给图片添加阴影效果,这是很常见的需求。第一种方法是自定义drawable,使用layer-list定义两个图片,代码如下:show_view
- 什么是有序性在开发中,我们通常按照从上到下的顺序编写程序指令,并且希望cpu和编译器按照我们预先编写的顺序去执。但往往cpu和编译器为了提高
- 本文旨在通过重写Comparator接口的compare()方法实现对List的升序、降序、倒序排序。首先明确一点:compare(Inte
- 注意事项阿里云的dataworks提供了OpenApi, 需要是企业版或旗舰版才能够调用,也就是付费项目。这里测试主要是调用拉取datawo
- 1 前言有时候我们的程序中要提供可以使用代理访问网络,代理的方式包括http、https、ftp、socks代理。比如在IE浏览器设置代理。
- Java并发包的locks包里的锁基本上已经介绍得差不多了,ReentrantLock重入锁是个关键,在清楚的了解了同步器AQS的运行机制后
- 问题在讨论原子性操作时,我们经常会听到一个说法:任意单个volatile变量的读写具有原子性,但是volatile++这种操作除外。所以问题
- 使用JAVA工程管理越来越多的jar包,担心导错了,多导了,漏导了怎么办?换一个IDE项目后项目会不会出一堆BUG,看的头皮发麻?自己写的代
- 我们平时使用的一些常见队列都是非阻塞队列,比如PriorityQueue、LinkedList(LinkedList是双向链表,它实现了De
- 静态变量静态变量位于栈上,它是一个全局变量,在编译期就已经生成。public class Cow{public static int cou
- 最近一个项目要导出word文档,折腾老半天,发现还是用freemarker的模板来搞比较方便省事,现总结一下关键步骤,供大家参考,这里是一个
- summarydetail传统的Spring项目会有很多的配置文件,比如我们要使用Redis,一般除了对应的依赖的jar包我们还需要在app
- 前言在服务器上,当我们启动了tomcat,就可以以http://ip地址:8080/文件路径/文件名的方式,进行访问到我们服务器上处于tom
- 本文实例为大家分享了Java手写线程池的实现代码,供大家参考,具体内容如下1.线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在
- 背景介绍你刚从学校毕业后,到新公司实习,试用期又被毕业,然后你又不得不出来面试,好在面试的时候碰到个美女面试官!面试官: 小伙子,
- 1、System.Threading.Timer 线程计时器1、最底层、轻量级的计时器。基于线程池实现的,工作在辅助线程。2、它并不是内在线