asp.net创建后台加事务的方法
方法一。
1、建立List用于存放多条语句
/// <summary>
/// 保存表单
/// </summary>
/// <param name="context"></param>
protected void save()
{
List<string> list = new List<string>();
list.Add(string.Format("insert into picsone(model,idser,idflg,lmuser,lmdate,lmtime) values('{0}','{1}','{2}','{3}',{4},{5})", "T1002", "Y", "N", "U001", 20161103, 140025));
list.Add(string.Format("insert into picstwo(model,idser,idflg,lmuser,lmdate,lmtime) values('{0}','{1}','{2}','{3}',{4},{5})", "T1002", "Y", "N", "U001", 20161103, 140025));
bool bol = ExecuteTransaction(list);
if (bol)
{
MessageBox.Show("保存成功!");
}
else
{
MessageBox.Show("保存失败!");
}
}
2、调用ExecuteTransaction方法,并返回返回值true为成功,false为失败,语句并回滚
/// <summary>
/// 执行语句
/// </summary>
/// <param name="list"></param>
/// <returns></returns>
private bool ExecuteTransaction(List<string> list)
{
using (SqlConnection connection = new SqlConnection(ConfigurationManager.AppSettings["LocalConnectionString"].ToString()))
{
SqlCommand command = new SqlCommand();
SqlTransaction transaction = null;
try
{
connection.Open();
transaction = connection.BeginTransaction();
command.Connection = connection;
command.Transaction = transaction;
for (int i = 0; i < list.Count; i++)
{
command.CommandText = list[i];
command.ExecuteNonQuery();
}
transaction.Commit();
connection.Close();
return true;
}
catch
{
transaction.Rollback();
connection.Close();
return false;
}
}
}
方法二
string str011 = sbDelSQL.ToString();
string str012 = sbInsert.ToString();
string str013 = sbUpdate.ToString();
string str00 = "";
List<string> list = new List<string>();
list.Add(str011);
list.Add(str012);
list.Add(str013);
//int idel = SqlHelper.ExecuteNonQuery(delSQL, CommandType.Text);
//int iinsert = SqlHelper.ExecuteNonQuery(sbInsert.ToString(), CommandType.Text);
//删除,新增,修改放入事务执行
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["Sql"].ConnectionString);//获取数据库连bai接
con.Open();//打开连接
SqlTransaction sqltra = con.BeginTransaction();//开始事务
SqlCommand cmd = new SqlCommand();//实例du化
cmd.Connection = con;//获取数据连zhi接
cmd.Transaction = sqltra;//在执行SQL时,
try
{
cmd.CommandText = str011+ str012 + str013;
cmd.ExecuteNonQuery();
sqltra.Commit();
}
catch (Exception ex)
{
sqltra.Rollback();
}