zoukankan      html  css  js  c++  java
  • 数据库事务

    方法一:

    /// <summary>
    /// 执行多条SQL语句,实现数据库事务
    /// </summary>
    /// <param name="SQLStringList">多条SQL语句</param>
    /// <returns>执行事务影响的行数</returns>
    public static int ExecuteSqlTran(string connectionString, List<String> SQLStringList)
    {
    using (SqlConnection conntion = new SqlConnection(connectionString))
    {
    conntion.Open();
    SqlCommand cmd = new SqlCommand();
    cmd.Connection = conntion;

    SqlTransaction ts = conntion.BeginTransaction();
    cmd.Transaction = ts;
    try
    {
    int count = 0;
    for (int n = 0; n < SQLStringList.Count; n++)
    {
    string strsql = SQLStringList[n];
    if (strsql.Length > 1)
    {
    cmd.CommandText = strsql;
    count += cmd.ExecuteNonQuery();
    }
    }
    ts.Commit();//提交数据库事务
    return count;
    }
    catch
    {
    ts.Rollback();
    return 0;
    }
    }
    }

    方法二:

    /// <summary>
    /// 执行多条SQL语句,实现数据库事务
    /// </summary>
    /// <param name="SQLStringList">SQL语句的哈希表(key为sql语句,value是该语句的SqlParameter[])</param>
    public static void ExecuteSqlTran(string connectionString, Hashtable SQLStringList)
    {
    using (SqlConnection conn = new SqlConnection(connectionString))
    {
    conn.Open();
    using (SqlTransaction trans = conn.BeginTransaction())
    {
    SqlCommand cmd = new SqlCommand();
    try
    {
    //循环
    foreach (DictionaryEntry myDY in SQLStringList)
    {
    string cmdText = myDY.Key.ToString();
    SqlParameter[] parameter = (SqlParameter[])myDY.Value;
    PrepareCommand(cmd, conn, trans, cmdText, parameter);
    int result = cmd.ExecuteNonQuery(); //这里可以记录该事务的执行结果
    cmd.Parameters.Clear();
    }
    trans.Commit();
    }
    catch
    {
    trans.Rollback();
    throw;
    }
    }
    }
    }

  • 相关阅读:
    位或( | )
    学习进度笔记7
    学习进度笔记6
    学习进度笔记5
    学习进度笔记4
    学习进度笔记3
    学习进度笔记2
    学习进度笔记1
    周总结13
    《黑客与画家》阅读笔记6
  • 原文地址:https://www.cnblogs.com/wangfei1511/p/3673021.html
Copyright © 2011-2022 走看看