zoukankan      html  css  js  c++  java
  • C# 使用事务

         事务可控制和维护事务中每个操作的一致性和完整性。具体说明可参考其它文章。
    这里主要是说明在C#中执行事务的使用方法。其代码如下:

        /// <summary>
        
    /// 执行事务
        
    /// </summary>
        
    /// <param name="sSqlList">一次执行的多条语句列表</param>
        public void RunOldDbTransaction(string[] sSqlList)
        {
            sConnectionString 
    = ConfigurationManager.AppSettings.Get("UserConnection");
            OracleConnection ocConnection 
    = new OracleConnection(sConnectionString);
            ocConnection.Open();
            
    //创建并开启事务
            OracleTransaction oraTrans = ocConnection.BeginTransaction(IsolationLevel.ReadCommitted);
            OracleCommand ocCommand 
    = ocConnection.CreateCommand();
            ocCommand.Transaction 
    = oraTrans;
            
    try
            {
                
    //循环事务中语句
                foreach (string sVal in sSqlList)
                {
                    ocCommand.CommandText 
    = sVal;
                    ocCommand.ExecuteNonQuery();
                }
                
    //完成后确认事务
                oraTrans.Commit();
            }
            
    catch (Exception ex)
            {
                
    //出错后回滚事务
                oraTrans.Rollback();
                
    throw ex;
            }
            
    finally
            {
                ocConnection.Close();
            }
        }


    注:SQL中用法
    BEGIN TRANS
      
    DECLARE @orderDetailsError int@productError int
      
    //执行的语句1
      
    DELETE FROM Order Details WHERE ID=111
      
    //得到错误
      
    SELECT @orderDetailsError = @@ERROR
      
    //执行的语句2
      
    DELETE FROM Products WHERE ProductID=112
      
    //得到另外一个错误
      
    SELECT @productError = @@ERROR
      
    IF @orderDetailsError = 0 AND @productError = 0
        
    COMMIT TRANS
      
    ELSE
        
    ROLLBACK TRANS
    这种方法可以查阅相关sql server 帮助。
  • 相关阅读:
    .Net程序员之Python基础教程学习----字典的使用 [Third Day]
    .Net程序员之Python基础教程学习----字符串的使用 [Second Day]
    .Net程序员之Python基础教程学习----列表和元组 [First Day]
    SQL--实现分页查询
    .Net程序员Python之道---Python基础
    C#基础----Linq之List<T>篇
    C#基础--基于POP3协议的邮件接收和基于STMP的邮件发送
    C#基础---事件的使用
    C#基础---委托的使用
    各种坑死爹的
  • 原文地址:https://www.cnblogs.com/scottckt/p/1538515.html
Copyright © 2011-2022 走看看