如题: 简单 简单
谢谢各位大哥

解决方案 »

  1.   

    public void ExeTransaction(List<string> sqls)
            {
                connection.Open();
                DbTransaction transaction = connection.BeginTransaction();
                command.Transaction = transaction;
                try
                {
                    foreach (string sql in sqls)
                    {
                        command.CommandText = sql;
                        command.ExecuteNonQuery();
                    }
                    transaction.Commit();
                }
                catch (Exception se)
                {
                    transaction.Rollback();
                    throw se;
                }
                finally
                {
                    connection.Close();
                }
            }
        }
      

  2.   

    using(SqlConnection con = new SqlConnection("")) 
     {         
                con.Open(); 
                SqlTransaction myTran = con.BeginTransaction(); 
                SqlCommand myCom = new SqlCommand(); 
                myCom.Connection = con; 
                myCom.Transaction = myTran; 
                try 
                { 
                  myCom.CommandText = "insert into A values ('测试','111')"; 
                  myCom.ExecuteNonQuery(); 
                  myTran.Commit(); 
                  Response.Write("成功执行"); 
                } 
              catch (Exception Ex) 
                { 
                    myTran.Rollback(); 
                    Response.Write(Ex.ToString()); 
                    Response.Write("写入数据库失败"); 
                } 
                finally 
                { 
                    con.Close(); 
                } 
    }
      

  3.   

     private static void ExecuteSqlTransaction(string connectionString)
            {
                using (SqlConnection connection = new SqlConnection(connectionString))
                {
                    connection.Open();
                    SqlCommand command = connection.CreateCommand();
                    SqlTransaction transaction;  
                    transaction = connection.BeginTransaction("SampleTransaction");
                    command.Connection = connection;
                    command.Transaction = transaction;
                    try
                    {
                        command.CommandText =
                            "Insert into Department (ID, Name) VALUES (1, '工程部')";
                        command.ExecuteNonQuery();
                        command.CommandText =
                            "Insert into Users(ID, Name,DepartmentID) VALUES (1, 'xyz',1)";
                        command.ExecuteNonQuery();
                        transaction.Commit();
                    }
                    catch (Exception ex)
                    {
                       transaction.Rollback();
                    }
                }
            }
      

  4.   

     /// <summary>
            /// 执行多条SQL语句,实现数据库事务。
            /// </summary>
            /// <param name="SQLStringList">多条SQL语句</param>
            public int OraExeSqlTran(ArrayList SQLStringList)
            {
                using (OracleConnection conn = new OracleConnection(OraConnStr()))
                {
                    conn.Open();
                    OracleCommand cmd = new OracleCommand();
                    cmd.Connection = conn;
                    OracleTransaction Tran = conn.BeginTransaction();
                    cmd.Transaction = Tran;
                    int Exint = -1;
                    for (int n = 0; n < SQLStringList.Count; n++)
                    {
                        string strsql = SQLStringList[n].ToString();
                        if (strsql.Trim().Length > 1)
                        {
                            try
                            {
                                cmd.CommandText = strsql;
                                cmd.ExecuteNonQuery();
                                Exint = 1;
                            }
                            catch (Exception er)
                            {
                                //ErrorRecord(strsql, er);
                                Exint = 0;
                                MsgError(er.Message.ToString());
                                break;
                            }
                        }
                    }
                    if (Exint == 1)
                    {
                        Tran.Commit();
                        SQLStringList.Clear();
                        return 1;
                    }
                    else
                    {
                        Tran.Rollback();
                        conn.Close();
                        SQLStringList.Clear();
                        return 0;
                    }
                }
            }