C#中事務(wù)處理和非事務(wù)處理方法實例分析
更新時間:2015年07月16日 15:00:45 作者:罪惡的花生
這篇文章主要介紹了C#中事務(wù)處理和非事務(wù)處理方法,較為詳細(xì)的分析了C#中事務(wù)處理與非事務(wù)處理的使用技巧,對于使用C#進(jìn)行數(shù)據(jù)庫程序開發(fā)有一定參考借鑒價值,需要的朋友可以參考下
本文實例講述了C#中事務(wù)處理和非事務(wù)處理方法。分享給大家供大家參考。具體如下:
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(); //開啟事務(wù),可以指定事無級別。默認(rèn)為提交才可以查詢 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#中判斷本地系統(tǒng)的網(wǎng)絡(luò)連接狀態(tài)的方法
C#中一般通過InternetGetConnectedState函數(shù)返回本地系統(tǒng)的網(wǎng)絡(luò)連接狀態(tài),下面簡單介紹下,需要的朋友可以參考下2013-10-10詳解C# List<T>的Contains,Exists,Any,Where性能對比
這篇文章主要介紹了詳解C# List<T>的Contains,Exists,Any,Where性能對比,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12