ASP.NETc#中使用事务怎么操作数据库?大家能给我举例说明一下吗?谢谢!

解决方案 »

  1.   

    using (System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection())
                {
                    conn.ConnectionString = "sdfsdf";
                    conn.Open();
                    System.Data.SqlClient.SqlTransaction tran = conn.BeginTransaction();
                    using (System.Data.SqlClient.SqlCommand command= conn.CreateCommand())
                    {
                        command.CommandText = "xxxx";
                        try
                        {
                            command.ExecuteNonQuery();
                            tran.Commit();
                        }
                        catch
                        {
                            tran.Rollback();
                        }
                        finally
                        {
                            tran.Dispose();
                        }
                    }
                }
      

  2.   

    首先得明白   在cs文件处理事务的时候   是返回受影响的行
                pwebsql.Comm.Transaction = pwebsql.Conn.BeginTransaction();
                try
                {
                    pwebsql.Comm.CommandType = CommandType.StoredProcedure;
                    //添加一个酒店
                    pwebsql.Comm.CommandText = "up_HotelAdd";                pwebsql.Comm.Parameters.Add("@hotelID", SqlDbType.Int).Direction = ParameterDirection.Output;
                    int rows = pwebsql.Comm.ExecuteNonQuery();                hotelID = Convert.ToInt32( pwebsql.Comm.Parameters["@hotelID"].Value);      //返回酒店编号                pwebsql.Comm.Parameters.Clear();  
                    //添加一个酒店用户
                    pwebsql.Comm.CommandText = "up_ManagerAddUser";
                    pwebsql.Comm.Parameters.Add("@userID",SqlDbType.Int).Direction = ParameterDirection.Output;
                    int row = pwebsql.Comm.ExecuteNonQuery();
                    //提交事务
                    pwebsql.Comm.Transaction.Commit();                              if (rows >= 0 && row >= 0)
                    {
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }
                catch
                {
                    //回滚事务
                    pwebsql.Comm.Transaction.Rollback();
                    hotelID = 0;              
                    return false;
                    
                }
      

  3.   

    using(SqlTransaction trans = myConnection.BeginTransaction())
    {
    try
    {
    //开始事物
    if(trans!=null){
    myCommand.Transaction = trans;
    }////提交事物
    trans.Commit();
    }
    catch(Exception e)
    {
    string infoMessage = e.Message;
    //事物回滚
    trans.Rollback();
    }
    finally
    {
    myAdapter.Dispose();
    myCommand.Dispose();
    myCon.Close();
    myCon.Dispose();
    }
    }
      

  4.   

        SqlConnection con = new SqlConnection("连接字符串");
            con.Open();
            SqlTransaction myTrans = con.BeginTransaction(); //事务开始
            SqlCommand cmd = new SqlCommand();
            cmd.CommandText = "sql语句";
            cmd.Transaction = myTrans;
            try
            {
                cmd.ExecuteNonQuery();
                myTrans.Commit();  //提交事务
            }
            catch
            {
                myTrans.Rollback(); //事务回滚
            }
            finally
            {
                con.Close();
                myTrans.Dispose();
            }
      

  5.   

            using (System.Data.SqlClient.SqlConnection conn = DataBaseOperator.GetMyConnection())
            {
                conn.Open();
                System.Data.SqlClient.SqlTransaction tran = conn.BeginTransaction();
                using (System.Data.SqlClient.SqlCommand command = conn.CreateCommand())
                {
                    command.CommandText = "DELETE FROM member WHERE username=  " + "'" + this.TextBox1.Text + "'";
                    command.ExecuteNonQuery();
                    command.CommandText = "DELETE FROM member WHERE username =  " + "'" + this.TextBox2.Text + "'";
                    command.ExecuteNonQuery();
                    try
                    {
                        tran.Commit();
                        Page.ClientScript.RegisterStartupScript(this.GetType(), "Startup", "<script>alert('事务操作成功!');</script>");
                    }
                    catch
                    {
                        tran.Rollback();
                        Page.ClientScript.RegisterStartupScript(this.GetType(), "Startup", "<script>alert('操作不成功!事务生产回滚');</script>");
                    }
                    finally
                    {
                        tran.Dispose();
                    }
                }
            }看看那里不对?
      

  6.   

                  try
    {
      using   (System.Data.SqlClient.SqlConnection   conn   =   DataBaseOperator.GetMyConnection())
                    {
                            conn.Open();
                            System.Data.SqlClient.SqlTransaction   tran   =   conn.BeginTransaction();
                            using   (System.Data.SqlClient.SqlCommand   command   =   conn.CreateCommand())
                            {
                                    command.CommandText   =   "DELETE   FROM   member   WHERE   username=     "   +   "'"   +   this.TextBox1.Text   +   "'";
                                    command.ExecuteNonQuery();
                                    command.CommandText   =   "DELETE   FROM   member   WHERE   username   =     "   +   "'"   +   this.TextBox2.Text   +   "'";
                                    int i = Convert.ToInt32(command.ExecuteSc....())//返回影响的行数
                                    if(i>=0)
                                            {tran.Commit();
                                            Page.ClientScript.RegisterStartupScript(this.GetType(),   "Startup",   " <script> alert('事务操作成功!'); </script> ");}
    else
    {
      tran.Rollback();
      Page.ClientScript.RegisterStartupScript(this.GetType(),   "Startup",   " <script> alert('操作不成功!事务生产回滚'); </script> ");
    }
                                    }
                                    catch
                                    {
                                           Response.Write('<script> alert('数据库访问失败') </script>')
                                    }
                                     //用了Using可以不加finally
                                    ///finally
                                    //{
                                      //      tran.Dispose();
                                   // }
                            }
                    }
      

  7.   

    这个不好编辑,自己仔细看下咯,事务最好放存储过程
    刚写掉了点 2个Sql语句都返回影响行数,用逻辑与判断下 
      

  8.   

    catch (Exception ex)
                                                                    { 
                                                                                  Response.Write(' <script>   alert('数据库访问失败')   </script> ') 
                                                                    } 
      

  9.   

    tran.Dispose();
    是这一句吗?
      

  10.   

    using (System.Data.SqlClient.SqlConnection conn = DataBaseOperator.GetMyConnection())
            {
                conn.Open();
               //声明事务并指定连结串
                System.Data.SqlClient.SqlTransaction tran = conn.BeginTransaction();
                //声明命令操作
                System.Data.SqlClient.SqlCommand command = conn.CreateCommand();
                //给命令指定事务
                command.Transaction = tran;
                try
                {
                    command.CommandText = "DELETE FROM member WHERE username=  " + "'" + this.TextBox1.Text + "'";
                    command.ExecuteNonQuery();
                    //command.Transaction = tran;
                    command.CommandText = "DELETE FROM member WHERE username =  " + "'" + this.TextBox2.Text + "'";
                    command.ExecuteNonQuery();
                    tran.Commit();
                    this.GridView1.DataSource = mydata.MyMemberReader();
                    this.GridView1.DataBind();
                }
                catch
                {
                    tran.Rollback();
                }
                finally
                {
                    tran.Dispose();
                }
            }上面代码中//command.Transaction = tran;这一句代码我可以不要吗?....?
      

  11.   

    这里比较详细说明了各种方式:http://hi.baidu.com/sjhyqiang/blog/item/bf62bda247da87afcaefd062.html
      

  12.   

    上面代码中//command.Transaction   =   tran;这一句代码我可以不要吗?....?