如何在asp.net写事务

wdtclv 2004-09-16 02:41:53
如何在asp.net写事务处理阿
急需方法
...全文
283 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
spgoal 2004-09-16
  • 打赏
  • 举报
回复
http://www.it918.com/htm/jc/jcwlbc/ASP.NET/20040827C162428.shtml
wangyegxl 2004-09-16
  • 打赏
  • 举报
回复
同意 orcale(小三)
shanyou 2004-09-16
  • 打赏
  • 举报
回复
ado.net事务
com+事务
smallMage 2004-09-16
  • 打赏
  • 举报
回复
UP
华博 2004-09-16
  • 打赏
  • 举报
回复

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
roapzone 2004-09-16
  • 打赏
  • 举报
回复
//插入一条分配的记录
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();
}
roapzone 2004-09-16
  • 打赏
  • 举报
回复
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;
}
viena 2004-09-16
  • 打赏
  • 举报
回复
呵呵
acewang 2004-09-16
  • 打赏
  • 举报
回复
http://www.yesky.com/20030402/1660720.shtml
「已注销」 2004-09-16
  • 打赏
  • 举报
回复
都说完了
exboy 2004-09-16
  • 打赏
  • 举报
回复
整个ASPX页的的事物:
在 Page 指令里面加上一个属性Transaction,并设置此属性的值为 Required, 然后使用System.EnterpriseServices.ContextUtil 类的 SetAbort 和 SetComplete 方法来终止事物和完成事物.
forideal 2004-09-16
  • 打赏
  • 举报
回复
设置一个回滚的点,然后用RollBack(标识名),就可以了。最好用存储过程
orcale 2004-09-16
  • 打赏
  • 举报
回复
sorry:
comm.Commit();
前面還有一個Comm.ExecuteNonQuery();
yt_net 2004-09-16
  • 打赏
  • 举报
回复
具体说一下,要处理什么
orcale 2004-09-16
  • 打赏
  • 举报
回复
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();
}
luckweb 2004-09-16
  • 打赏
  • 举报
回复
是数据库的回滚吗?

62,254

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧