sqlhelper.cs增加事务处理代码
#region 事务创建处理
public static SqlTransaction BeginTransaction(string con)
{
SqlConnection connection = new SqlConnection(con);
connection.Open();
SqlTransaction tran = connection.BeginTransaction();
return tran;
}
public static int TransExecuteNonQuery(string sqlconnectingstring,CommandType commandtype,string commandText,params SqlParameter[] commandParameters)
{
int returnVule;
using(SqlTransaction tran = BeginTransaction(sqlconnectingstring))
{
try
{
returnVule = ExecuteNonQuery(
tran,
commandtype,
commandText,
commandParameters);
returnVule =1;
tran.Commit();
}
catch
{
returnVule =0;
tran.Rollback();
}
}
return returnVule;
}
public static object TransExecuteScalar(string sqlconnectingstring, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
{
object reval = null;
using(SqlTransaction tran = BeginTransaction(sqlconnectingstring))
{
try
{
reval = ExecuteScalar(
tran,
commandType,
commandText,
commandParameters);
tran.Commit();
return reval;
}
catch
{
tran.Rollback();
return null;
}
}
}
#endregion
为了保证数据完整性,多个插入语句必须采用事务处理
//test.cs
public bool Savexx(ZfJbXx zfjbxx,string cymj)
{
sql1="INSERT INTO tablename(Id,col1,col2) VALUES(@Id,@col1,@col2) update tablename2 set col=@col";
sql2="INSERT INTO tablename3(Id,col1,col2) VALUES(@Id,@col1,@col2)";
//参数设置(略)
using(SqlTransaction tran = SqlHelper.BeginTransaction(SqlHelper.DBConnectionString))
{
try
{
//SqlHelper.TransExecuteNonQuery(tran,CommandType.Text,sql1,parms);
//SqlHelper.TransExecuteNonQuery(tran,CommandType.Text,sql2,parms);
//更正为
SqlHelper.ExecuteNonQuery(tran,CommandType.Text,sql1,parms);
SqlHelper.ExecuteNonQuery(tran,CommandType.Text,sql2,parms);
tran.Commit();
return true;
}
catch
{
tran.Rollback();
return false;
}
}
浙公网安备 33010602011771号