C#中事務處理和非事務處理方法實例分析
更新時間:2015年07月16日 15:00:45 作者:罪惡的花生
這篇文章主要介紹了C#中事務處理和非事務處理方法,較為詳細的分析了C#中事務處理與非事務處理的使用技巧,對于使用C#進行數(shù)據(jù)庫程序開發(fā)有一定參考借鑒價值,需要的朋友可以參考下
本文實例講述了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#程序設(shè)計有所幫助。
相關(guān)文章
用C#+Selenium+ChromeDriver爬取網(wǎng)頁(模擬真實的用戶瀏覽行為)
這篇文章主要介紹了用C#+Selenium+ChromeDriver爬取網(wǎng)頁,模擬真實的用戶瀏覽行為,需要的小伙伴可以參考一下2022-01-01
C#/.Net開發(fā)chatGPT、openAI的簡單步驟
OpenAI處于科技行業(yè)下一件大事件的最前沿,具有初創(chuàng)公司史詩般的標志,下面這篇文章主要給大家介紹了關(guān)于C#/.Net開發(fā)chatGPT和openAI的相關(guān)資料,需要的朋友可以參考下2023-02-02
WinForm實現(xiàn)讀取Resource中文件的方法
這篇文章主要介紹了WinForm實現(xiàn)讀取Resource中文件的方法,很實用的一個功能,需要的朋友可以參考下2014-08-08

