求个事务列子啊 如题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Data.SqlClient;using Tools;using Microsoft.ApplicationBlocks.Data;/// <summary>/// Servicer 的摘要说明/// </summary>public class ServicerBLL{ /// <summary> /// 维修人员提出一个维修申请,需要操作3张表 /// 1、预约表Reservation /// 2、流程处理process /// 3、日志Log /// 注:用事务的模式完成 /// </summary> /// <param name="rInfo"></param> /// <param name="lInfo"></param> /// <param name="pInfo"></param> /// <param name="Message"></param> /// <returns></returns> public static bool AddRequest(ReservationInfo rInfo, LogInfo lInfo,processInfo PInfo, out string Message) { string Sql = string.Empty; Message = string.Empty; using (SqlConnection conn = DALUtil.GetConnection()) { using (SqlTransaction trans = conn.BeginTransaction()) { try { #region Insert into Reservation Sql = "Insert into Reservation(ReservationNo,GuestName,Tel,MaintainDate," + "FaultAddress,FaultDesc,RequestUserId,AuditDate,AuditResult," + "IsSendCar)values(@ReservationNo,@GuestName,@Tel,@MaintainDate,@FaultAddress,@FaultDesc,@RequestUserId,@AuditDate,@AuditResult,@IsSendCar)"; SqlParameter[] arParms = new SqlParameter[10]; arParms[0] = new SqlParameter("@ReservationNo", SqlDbType.VarChar, 50); arParms[0].Value = rInfo.ReservationNo; arParms[1] = new SqlParameter("@GuestName", SqlDbType.VarChar, 50); arParms[1].Value = rInfo.GuestName; arParms[2] = new SqlParameter("@Tel", SqlDbType.VarChar, 50); arParms[2].Value = rInfo.Tel; arParms[3] = new SqlParameter("@MaintainDate", SqlDbType.DateTime); arParms[3].Value = rInfo.MaintainDate; arParms[4] = new SqlParameter("@FaultAddress", SqlDbType.VarChar, 255); arParms[4].Value = rInfo.FaultAddress; arParms[5] = new SqlParameter("@FaultDesc", SqlDbType.VarChar, 255); arParms[5].Value = rInfo.FaultDesc; arParms[6] = new SqlParameter("@RequestUserId", SqlDbType.Int); arParms[6].Value = rInfo.RequestUserId; arParms[7] = new SqlParameter("@AuditDate", SqlDbType.DateTime); arParms[7].Value = rInfo.AuditDate; arParms[8] = new SqlParameter("@AuditResult", SqlDbType.Char, 10); arParms[8].Value = rInfo.AuditResult; arParms[9] = new SqlParameter("@IsSendCar", SqlDbType.Bit); arParms[9].Value = rInfo.IsSendCar; SqlHelper.ExecuteNonQuery(trans, CommandType.Text, Sql,arParms); #endregion #region Insert into process Sql = "insert into Process (ProcessUserId,SendUserId,SendDate,Sate,ProcessPage)" + " values(@ProcessUserId,@SendUserId,@SendDate,@Sate,@ProcessPage)"; SqlParameter[] arparmsProcess = new SqlParameter[5]; arparmsProcess[0] = new SqlParameter("@ProcessUserId", SqlDbType.Int); arparmsProcess[0].Value = PInfo.ProcessUserId; arparmsProcess[1] = new SqlParameter("@SendUserId", SqlDbType.Int); arparmsProcess[1].Value = PInfo.SendUserId; arparmsProcess[2] = new SqlParameter("@SendDate", SqlDbType.DateTime, 8); arparmsProcess[2].Value = PInfo.SendDate; arparmsProcess[3] = new SqlParameter("@Sate", SqlDbType.Bit); arparmsProcess[3].Value = PInfo.Sate; arparmsProcess[4] = new SqlParameter("@ProcessPage", SqlDbType.VarChar, 50); arparmsProcess[4].Value = PInfo.ProcessPage; SqlHelper.ExecuteNonQuery(trans, CommandType.Text, Sql, arparmsProcess); #endregion #region Insert into Log Sql = "Insert into Log(UserId,OperationDesc,IP,OperateDate)values(@UserId,@OperationDesc,@IP,@OperateDate)"; SqlParameter[] arparmsLog = new SqlParameter[4]; arparmsLog[0] = new SqlParameter("@UserId", SqlDbType.Int); arparmsLog[0].Value = lInfo.UserId; arparmsLog[1] = new SqlParameter("@OperationDesc", SqlDbType.VarChar, 255); arparmsLog[1].Value = lInfo.OperationDesc; arparmsLog[2] = new SqlParameter("@IP", SqlDbType.VarChar, 25); arparmsLog[2].Value = lInfo.IP; arparmsLog[3] = new SqlParameter("@OperateDate", SqlDbType.DateTime, 8); arparmsLog[3].Value = lInfo.OperateDate; SqlHelper.ExecuteNonQuery(trans, CommandType.Text, Sql, arparmsLog); #endregion trans.Commit(); Message = "保存成功"; return true; } catch(Exception ex)//出现了错误 { //如果发生错误,就回滚,事物内所有的操作会还原。 trans.Rollback(); Message += "保存失败<br>" + ex.Message; return false; } } } } delare @error1 int begin tran --此处是你的执行sql set error=@@error --是否发生错误 if(@error=0) begin --提交事务 commit tran end else begin rollback tran end Image控件的ImageUrl设置为本地磁盘路径,图片不显示问题 求一个美国的 州 市 级联、最好是Jquery 版本的、 请教个repeater嵌套的问题 ASP.NET中使用主题来进行换肤的问题! TREEVIEW 关于防止同一帐号同时登陆的问题 关于treeview的传值问题 关于asp的循环, 和asp.net绑定的Item中的条件显示 哪儿能下 mapxtreme for windows??? 为什么我刷新之后刚才的操作又重复了一次?比如新增! ASP.NET 赋值简单问题 求:做像csdn下载后点星的评价怎么做
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using Tools;
using Microsoft.ApplicationBlocks.Data;/// <summary>
/// Servicer 的摘要说明
/// </summary>
public class ServicerBLL
{
/// <summary>
/// 维修人员提出一个维修申请,需要操作3张表
/// 1、预约表Reservation
/// 2、流程处理process
/// 3、日志Log
/// 注:用事务的模式完成
/// </summary>
/// <param name="rInfo"></param>
/// <param name="lInfo"></param>
/// <param name="pInfo"></param>
/// <param name="Message"></param>
/// <returns></returns>
public static bool AddRequest(ReservationInfo rInfo, LogInfo lInfo,processInfo PInfo, out string Message)
{
string Sql = string.Empty;
Message = string.Empty;
using (SqlConnection conn = DALUtil.GetConnection())
{
using (SqlTransaction trans = conn.BeginTransaction())
{
try
{
#region Insert into Reservation
Sql = "Insert into Reservation(ReservationNo,GuestName,Tel,MaintainDate," +
"FaultAddress,FaultDesc,RequestUserId,AuditDate,AuditResult," +
"IsSendCar)values(@ReservationNo,@GuestName,@Tel,@MaintainDate,@FaultAddress,@FaultDesc,@RequestUserId,@AuditDate,@AuditResult,@IsSendCar)"; SqlParameter[] arParms = new SqlParameter[10]; arParms[0] = new SqlParameter("@ReservationNo", SqlDbType.VarChar, 50);
arParms[0].Value = rInfo.ReservationNo;
arParms[1] = new SqlParameter("@GuestName", SqlDbType.VarChar, 50);
arParms[1].Value = rInfo.GuestName;
arParms[2] = new SqlParameter("@Tel", SqlDbType.VarChar, 50);
arParms[2].Value = rInfo.Tel;
arParms[3] = new SqlParameter("@MaintainDate", SqlDbType.DateTime);
arParms[3].Value = rInfo.MaintainDate;
arParms[4] = new SqlParameter("@FaultAddress", SqlDbType.VarChar, 255);
arParms[4].Value = rInfo.FaultAddress;
arParms[5] = new SqlParameter("@FaultDesc", SqlDbType.VarChar, 255);
arParms[5].Value = rInfo.FaultDesc;
arParms[6] = new SqlParameter("@RequestUserId", SqlDbType.Int);
arParms[6].Value = rInfo.RequestUserId;
arParms[7] = new SqlParameter("@AuditDate", SqlDbType.DateTime);
arParms[7].Value = rInfo.AuditDate;
arParms[8] = new SqlParameter("@AuditResult", SqlDbType.Char, 10);
arParms[8].Value = rInfo.AuditResult;
arParms[9] = new SqlParameter("@IsSendCar", SqlDbType.Bit);
arParms[9].Value = rInfo.IsSendCar; SqlHelper.ExecuteNonQuery(trans, CommandType.Text, Sql,arParms);
#endregion #region Insert into process
Sql = "insert into Process (ProcessUserId,SendUserId,SendDate,Sate,ProcessPage)" +
" values(@ProcessUserId,@SendUserId,@SendDate,@Sate,@ProcessPage)";
SqlParameter[] arparmsProcess = new SqlParameter[5];
arparmsProcess[0] = new SqlParameter("@ProcessUserId", SqlDbType.Int);
arparmsProcess[0].Value = PInfo.ProcessUserId;
arparmsProcess[1] = new SqlParameter("@SendUserId", SqlDbType.Int);
arparmsProcess[1].Value = PInfo.SendUserId;
arparmsProcess[2] = new SqlParameter("@SendDate", SqlDbType.DateTime, 8);
arparmsProcess[2].Value = PInfo.SendDate;
arparmsProcess[3] = new SqlParameter("@Sate", SqlDbType.Bit);
arparmsProcess[3].Value = PInfo.Sate;
arparmsProcess[4] = new SqlParameter("@ProcessPage", SqlDbType.VarChar, 50);
arparmsProcess[4].Value = PInfo.ProcessPage; SqlHelper.ExecuteNonQuery(trans, CommandType.Text, Sql, arparmsProcess);
#endregion #region Insert into Log
Sql = "Insert into Log(UserId,OperationDesc,IP,OperateDate)values(@UserId,@OperationDesc,@IP,@OperateDate)";
SqlParameter[] arparmsLog = new SqlParameter[4];
arparmsLog[0] = new SqlParameter("@UserId", SqlDbType.Int);
arparmsLog[0].Value = lInfo.UserId;
arparmsLog[1] = new SqlParameter("@OperationDesc", SqlDbType.VarChar, 255);
arparmsLog[1].Value = lInfo.OperationDesc;
arparmsLog[2] = new SqlParameter("@IP", SqlDbType.VarChar, 25);
arparmsLog[2].Value = lInfo.IP;
arparmsLog[3] = new SqlParameter("@OperateDate", SqlDbType.DateTime, 8);
arparmsLog[3].Value = lInfo.OperateDate; SqlHelper.ExecuteNonQuery(trans, CommandType.Text, Sql, arparmsLog);
#endregion trans.Commit();
Message = "保存成功";
return true;
}
catch(Exception ex)//出现了错误
{
//如果发生错误,就回滚,事物内所有的操作会还原。
trans.Rollback();
Message += "保存失败<br>" + ex.Message;
return false;
}
}
}
}
delare @error1 int
begin tran
--此处是你的执行sql
set error=@@error --是否发生错误
if(@error=0)
begin
--提交事务
commit tran
end
else
begin
rollback tran
end