如何在asp.net写事务处理阿
急需方法

解决方案 »

  1.   

    SqlConnection conn=new SqlConnection(connstring);
    SqlTransaction Tran;
    Conn.Open();
    Tran=Conn.BeginTransaction();
    SqlCommand Comm=new SqlCommand(Conn,sql);
    Comm.Transaction=Tran;
    Try{
       Comm.Commit();}
    catch
    {
       Comm.Rollback();
    }
      

  2.   

    sorry:
    comm.Commit();
    前面還有一個Comm.ExecuteNonQuery();
      

  3.   

    设置一个回滚的点,然后用RollBack(标识名),就可以了。最好用存储过程
      

  4.   

    整个ASPX页的的事物:
    在 Page 指令里面加上一个属性Transaction,并设置此属性的值为 Required, 然后使用System.EnterpriseServices.ContextUtil 类的 SetAbort 和 SetComplete 方法来终止事物和完成事物.
      

  5.   

    http://www.yesky.com/20030402/1660720.shtml
      

  6.   

    public bool SaveInforAssinRY(DataTable Info)
    {
    bool InsertFlag = true;
    SqlConnection sqlcon  = new SqlConnection(Configuration.ConnectionString);
    sqlcon.Open();
    int mt = Info.Rows.Count;
                SqlTransaction oSqlTran =sqlcon.BeginTransaction();
    try
    {
    for(int i=0;i<Info.Rows.Count;i++)
    {
    //vCommandType, string vbsbh,string vdxgcbh,string vzymcid,string vzymc,string vzyryid,
    //string vzyrymc,string vzgcbh,string vRegeditMan ,string vRegeditDate
    InsertEachAssinRY(sqlcon,oSqlTran,
                   Info.Rows[i]["CommandType"].ToString(),
                                       Info.Rows[i]["bsbh"].ToString(),
                   Info.Rows[i]["dxgcbh"].ToString(),
                   Info.Rows[i]["zymcid"].ToString(),
                   Info.Rows[i]["zymc"].ToString(),
                   Info.Rows[i]["zyryid"].ToString(),
                       Info.Rows[i]["zyrymc"].ToString(), 
                   Info.Rows[i]["zgcbh"].ToString(), 
                   Info.Rows[i]["RegeditMan"].ToString(), 
                   Info.Rows[i]["RegeditDate"].ToString(),
                                           Info.Rows[i]["ImprotanceLevel"].ToString()
                  );


    }
    oSqlTran.Commit();
    }
    catch(Exception e)
    {
    oSqlTran.Rollback();
    InsertFlag  = false;
    throw(e);
    }
    finally
    {
    sqlcon.Close();
    sqlcon = null;
    Info = null; }
          return InsertFlag;
    }
      

  7.   

    //插入一条分配的记录
    public void InsertEachAssinRY(SqlConnection SqlConn,SqlTransaction sqlTrans,
      string vCommandType, string vbsbh,string vdxgcbh,string vzymcid,string vzymc,string vzyryid,
       string vzyrymc,string vzgcbh,string vRegeditMan,string vRegeditDate,string vImprotanceLevel)
    {
    SqlCommand oSqlCom = new SqlCommand("AssinInserZYRY",SqlConn,sqlTrans);
    oSqlCom.CommandType = CommandType.StoredProcedure;
    oSqlCom.Parameters.Add(new SqlParameter("@CommandType",SqlDbType.VarChar,20));
    oSqlCom.Parameters["@CommandType"].Value = vCommandType.Trim();
    oSqlCom.Parameters.Add(new SqlParameter("@bsbh",SqlDbType.VarChar,20));
    oSqlCom.Parameters["@bsbh"].Value = vbsbh.Trim();
    oSqlCom.Parameters.Add(new SqlParameter("@dxgcbh",SqlDbType.VarChar,20));
    oSqlCom.Parameters["@dxgcbh"].Value = vdxgcbh.Trim();
    oSqlCom.Parameters.Add(new SqlParameter("@zymcid",SqlDbType.Int));
    oSqlCom.Parameters["@zymcid"].Value =vzymcid;
    oSqlCom.Parameters.Add(new SqlParameter("@zymc",SqlDbType.VarChar,20));
    oSqlCom.Parameters["@zymc"].Value = vzymc.Trim();
    oSqlCom.Parameters.Add(new SqlParameter("@zyryid",SqlDbType.VarChar,20));
    oSqlCom.Parameters["@zyryid"].Value =vzyryid.Trim();
    oSqlCom.Parameters.Add(new SqlParameter("@zyrymc",SqlDbType.VarChar,20));
    oSqlCom.Parameters["@zyrymc"].Value = vzyrymc.Trim();
    oSqlCom.Parameters.Add(new SqlParameter("@zgcbh",SqlDbType.VarChar,20));
    oSqlCom.Parameters["@zgcbh"].Value = vzgcbh.Trim();
    oSqlCom.Parameters.Add(new SqlParameter("@RegeditMan",SqlDbType.VarChar,20));
    oSqlCom.Parameters["@RegeditMan"].Value = vRegeditMan.Trim();
    oSqlCom.Parameters.Add(new SqlParameter("@RegeditDate",SqlDbType.DateTime));
    oSqlCom.Parameters["@RegeditDate"].Value =vRegeditDate;
    oSqlCom.Parameters.Add(new SqlParameter("@ImprotanceLevel",SqlDbType.VarChar,20));
    oSqlCom.Parameters["@ImprotanceLevel"].Value = vImprotanceLevel;
    oSqlCom.ExecuteNonQuery();
    }
      

  8.   


    1. 怎样用事务(B/S)
    1.1 .aspx文件的page声明部分加入 Transaction="Required"
    如:<%@ Page Language="vb" Transaction="Required" AutoEventWireup="false" Codebehind="Order.aspx.vb" Inherits="EasyClick.Order" %>
    1.2 在项目中引用\.Net\System.EnterpriseServices\
    1.3 在后台文件中导入命名空间system.EnterpriseService
    如:Imports System.EnterpriseServices
    1.4 在数据提交的过程中应用事务。
    如:
            Try
    …….
    …….
    ’向数据库中成功写入数据
                  ContextUtil.SetComplete()’提交事务
            Catch ex As Exception
                Dim exm As String = ex.Message
                ContextUtil.SetAbort()’事务回滚
            End Try
    1.5 添加事务处理过程。
    如:
    ’事务提交处理过程
        Private Sub Page_Commit(ByVal sender As System.Object, ByVal eArgs As System.EventArgs) Handles MyBase.CommitTransaction
            If IsPostBack Then
                Response.Redirect("../../aspx/success.aspx")
            End If
    End Sub’事务回滚处理过程
        Private Sub Page_Abort(ByVal sender As System.Object, ByVal eArgs As System.EventArgs) Handles MyBase.AbortTransaction
            If IsPostBack Then
                Response.Redirect("../../aspx/failpage.aspx")
            End If
        End Sub
      

  9.   

    http://www.it918.com/htm/jc/jcwlbc/ASP.NET/20040827C162428.shtml