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();
                    }

 

 

posted @ 2022-03-23 08:45  离。  阅读(91)  评论(0编辑  收藏  举报