社区编辑申请
注册/登录
教您用事务一次处理多条SQL语句
数据库 SQL Server
如果需要一次性处理多条SQL语句,可以使用SQL中的事务,下面就将为您讲解SQL中事务的写法以及调用的方法,供您参考。

下面就将为您介绍如何使用事务一次处理多条SQL语句的方法,包括SQL中事务的写法以及调用的方法供您参考,希望对您学习SQL语句的执行能够有所帮助。

执行一个操作时,要同时修改多张表里的数据,并且每条数据都必须操作成功,才算执行成功,为了防止有些数据操作失败,有些成功,而造成的数据错乱,我们要使用事务。

事务就是:只有所有操作都成功则成功,只要有一条数据操作失败,则回滚。

后台写事务:

        /// <summary>
        /// 执行多条SQL语句,实现数据库事务。
       /// </summary> access数据库
       /// <param name="SQLStringList">多条SQL语句</param>  
        public static void ExecuteSqlTran(List<string> SQLStringList)
        {
            using (OleDbConnection conn = new OleDbConnection(SqlHelper.ConString))
            {
                conn.Open();
                OleDbCommand cmd = new OleDbCommand();
                cmd.Connection = conn;
                OleDbTransaction tx = conn.BeginTransaction();
                cmd.Transaction = tx;
                try
                {
                    for (int n = 0; n < SQLStringList.Count; n++)
                    {
                        string strsql = SQLStringList[n].ToString();
                        if (strsql.Trim().Length > 1)
                        {
                            cmd.CommandText = strsql;
                            cmd.ExecuteNonQuery();
                        }
                    }
                    tx.Commit();
                }
                catch (System.Data.OleDb.OleDbException E)
                {
                    tx.Rollback();
                    throw new Exception(E.Message);
                }
            }
        }

        /// <summary>
        /// 执行多条SQL语句,实现数据库事务。
        /// </summary>sql2000数据库
        /// <param name="SQLStringList">多条SQL语句</param>
        public static void ExecuteSqlTran(List<string> SQLStringList)
        {
            using (SqlConnection conn = new SqlConnection(SqlHelper.ConString))
            {
                conn.Open();
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = conn;
                SqlTransaction tx = conn.BeginTransaction();
                cmd.Transaction = tx;
                try
                {
                    for (int n = 0; n < SQLStringList.Count; n++)
                    {
                        string strsql = SQLStringList[n].ToString();
                        if (strsql.Trim().Length > 1)
                        {
                            cmd.CommandText = strsql;
                            cmd.ExecuteNonQuery();
                        }
                    }
                    tx.Commit();
                }
                catch (System.Data.SqlClient.SqlException E)
                {
                    tx.Rollback();
                    throw new Exception(E.Message);
                }
            }
        }

前台调用:

try
{
    //1.查出会员余额
    decimal usermoney = SqlDal.EntityUserinfo.GetModel(int.Parse(cookieUserID)).Money;
    //2.修改余额
    decimal Zmoney = usermoney + moAD.Commission;
    //写SQL语句
    List<string> SQLStringList = new List<string>();
    string clickSql = "insert into [user] (name,age)values('" + 小名 + "','“+4岁+”')";
    string userSql = "update [class] set [name]='" + 幼儿园 + "' where id=" + 2 + " ";
    SQLStringList.Add(clickSql);
    SQLStringList.Add(userSql);
    SqlDal.SqlHelper.ExecuteSqlTran(SQLStringList);

    //数据库操作成功
    //提示
    CommonClass.Xmls xmls1 = new CommonClass.Xmls();
    string path1 = CommonClass.Unit.GetMapPath(@"/Admin/Configs/SysSettingInfo.config");
    string ClickTishi = xmls1.GetXmlNode(path1, "SysSettingInfo/ClickTishi");
    //替换字符
    ClickTishi = ClickTishi.Replace("[$]", moAD.Commission.ToString("0.00"));
    context.Response.Write(ClickTishi); //输出
}
catch (Exception ex)
{
    //Response.Write(ex.Message);
    context.Response.Write("操作失败!" + ex.Message); //输出
}

 

【编辑推荐】

通过执行多条SQL语句实现数据库事务

存储过程优化的SQL语句写法

使用存储过程检查引起死锁的SQL语句及进程

SQL语句中CASE WHEN的使用实例

教您不带参数的SQL语句执行的方法

责任编辑:段燃 来源: 互联网
相关推荐

2010-07-08 13:32:22

SQL Server

2010-09-07 15:20:58

SQL语句事务

2022-08-04 15:31:45

2010-09-07 11:16:14

2010-09-07 16:12:36

SQL语句数据库压缩

2011-08-15 14:29:52

SQL Server数事务

2010-09-24 15:58:24

2022-02-11 14:43:53

2022-06-13 10:42:21

2011-03-31 11:40:13

SQL

2021-06-07 08:37:03

SQL 查询语句

2019-10-22 13:34:06

SQL数据库语句解读

2009-06-16 11:42:00

JDBC事务处理JavaBean

2009-06-12 14:47:27

JavaBeanJDBC链接事物处理

2018-12-26 09:25:30

SQL ServerSQL语句数据库

2011-05-18 08:34:45

javaJDBC

2019-10-15 10:23:13

服务器MySQL 数据

2011-08-15 11:24:46

2022-07-06 12:03:55

事务解决方案

2022-03-28 10:44:51

MySQL日志存储

编辑推荐

SQL Server 2016最值得关注的10大新特性SQL编程之高级查询及注意事项SQL Server性能调优方法论与常用工具【SQL Server 2016动态数据屏蔽入门】Azure SQL 数据库V12版的动态数据屏蔽【SQL Server 2016动态数据屏蔽入门】定义屏蔽
我收藏的内容
点赞
收藏

51CTO技术栈公众号