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 帮助。
  • 相关阅读:
    双飞翼布局和圣杯布局的对比
    阿里云centos+java环境搭建
    Android零散知识点积累
    [转]linux shell 流程控制(条件if,循环【for,while】,选择【case】语句实例
    [转]linux shell 获取当前正在执行脚本的绝对路径
    [转+整理]linux shell 将字符串分割成数组
    [转]linux shell 数组建立及使用技巧
    linux shell 入门
    jquery 字符串转为json
    JQuery插件开发入门
  • 原文地址:https://www.cnblogs.com/scottckt/p/1538515.html
Copyright © 2011-2022 走看看