asp.net 三层 事务

来源:百度知道 编辑:UC知道 时间:2024/05/24 14:12:46
有一个test.aspx的文件 在一个按钮(Button1)的点击他要调用两个不同的方法(业务层) 操作数据已在层写好(包括连接数据库执行查询等)

protected void Button1_Click(object sender, EventArgs e)
{
PostHistory postHistory = new PostHistory();
postHistory.Bank = this.radioBank.SelectedValue;
postHistory.Money = int.Parse(this.money.Text.Trim());
postHistory.PostDesc = this.content.Text.Trim();
postHistory.PostTime = DateTime.Now;
postHistory.User = (UserInfo)Session["userInfo"];
PostHistoryManager.AddPostHistoryByPostHistoryObject(postHistory);
PostHistoryManager.UpdatePostHistoryByObject(postHistory);
}

要达到只有同时不出异常时事务才否则回滚,请问各位大侠们这样的事务如何写

考虑到你的两个方法调用使用同一个参数,可以把这两个方法合并到PostHistoryManager类的一个方法里.这样可以使用应用程序级别的事物.类似于
SqlConnection conn = new SqlConnection(connectionString);
SqlTransaction tran = connection.CreateTransaction();
if(AddPostHistoryByPostHistoryObject成功)
{
if(UpdatePostHistoryByObject成功)
{
tran.Commit();
}
else
{
tran.Rollback();
}
}
else
{
tran.Rollback();
}

写在存储过程里