事务应用-执行多条SQL语句

事务具有原子性,要么不执行,要么全执行,一旦成功执行永久保存.而这些正是由于事务的原子性和对数据库的持久性形成的.以下是一个关于统一给数据库中的数据修改的批量操作,利用到事务.

TODO:批量修改数据库中的数据

CODE:

#region  ExtensionMethod
        /// <summary>
        /// 根据学号来给指定的学生加分-陈方林-2014年3月22日15:17:59
        /// </summary>
        /// <param name="strStudentNoScore">用来加分的sql语句</param>
        /// <returns>返回执行的结果</returns>
        public bool TeaGiveScores(string[] strStudentNoScore) {          

            //打开数据库连接
            sqlcon.Open();
            //声明sql事务
            SqlTransaction myTrans;
            //sql命令对象
            SqlCommand mycmd = new SqlCommand();
            //声明命令对象的连接数据库
            mycmd.Connection = sqlcon;
            //开启事务
            myTrans = sqlcon.BeginTransaction();
            //设置将在命令对象中执行的事务
            mycmd.Transaction = myTrans;
            try
            {
                //遍历字符串数组中的sql语句
                for (int i = 0; i < strStudentNoScore.Length; i++)
                {
                    mycmd.CommandText = strStudentNoScore[i];

                    int r =mycmd.ExecuteNonQuery();
                }
                //事务提交
                myTrans.Commit();
                return true;
            }
            catch (Exception)
            {
                //执行错误,事务回滚
                if (myTrans != null)
                    myTrans.Rollback();
                return false;
            }
            finally
            {
                //关闭连接
                if (sqlcon != null)
                    sqlcon.Close();
            }

        }
		#endregion  ExtensionMethod

总结

事务操作大致有(温故)

BeginTrans:开始事务

CommitTrans:提交事务

RollBackTrans:回滚事务

主要是对于数据处理的一个好的封装,作为处理的单元。结合sql常用的几个对象,来处理多行sql语句。

事务应用-执行多条SQL语句

时间: 2024-10-12 14:23:04

事务应用-执行多条SQL语句的相关文章

执行多条SQL语句,实现数据库事务。(Oracle数据库)

/// <summary> /// 执行多条SQL语句,实现数据库事务. /// </summary> /// <param name="SQLStringList">(key为sql语句,value是该语句的OracleParameter[])</param> /// <returns></returns> public static bool ExecuteSqlTran(Dictionary<strin

java执行多条SQL语句

一次执行多条SQL的技术要点如下: DatabaseMetaData接口是描述有关数据库的整体综合信息,由于DatabaseMetaData是接口,所以没有构造方法,故不能使用new来创建DatabaseMetaData对象,但是可以通过Connection的getMetaData()方法创建.例如:DatabaseMetaData md=con.getMetaData(). DatabaseMetaData类的supportsBatchUpdates方法用于判断此数据库是否支持批量更新.其返回

MySqli 执行多条SQL语句

使用multi_query();  去执行SQL语句,执行多条语句多个SQL语句用“;”分开 一:没有结果集的语句: $sql="insert into products (cid,name,price,num) values('2','PHP','2.22','10');update products set cid='10',name='tong',price='33.33',num='20' where id > 10; delete from products where id&l

MyBatis一次执行多条SQL语句

MyBatis一次执行多条SQL语句 有个常见的场景:删除用户的时候需要先删除用户的外键关联数据,否则会触发规则报错. 解决办法不外乎有三个:1.多条sql分批执行:2.存储过程或函数调用:3.sql批量执行. 今天我要说的是MyBatis中如何一次执行多条语句(使用mysql数据库). 1.修改数据库连接参数加上allowMultiQueries=true,如: hikariConfig.security.jdbcUrl=jdbc:mysql://xx.xx.xx:3306/xxxxx?cha

mysql -- 一次执行多条sql语句

最近要做一个软件升级,其中涉及到数据库表字段的变动(新增或删除或修改),所有的关于数据库的变动的sql语句都是存放在Sqlupdate.sql文件中,每次升级的时候都需要执行一次Sqlupdate.sql里的所有sql语句,这就涉及到执行多条语句的问题了.软件在CodeIgniter框架上开发的,CodeIgniter有封装好的执行sql语句的函数:$this->db->query('****'),但此函数一次只能执行一条sql语句.所以得另外想办法了.百度了下,找到了一些资料.multi_q

.net一次连接执行多条sql语句

方法一: string SQLString="select 1; select 2;"; using (OdbcConnection connection = new OdbcConnection(connectionString))            {                using (OdbcCommand cmd = new OdbcCommand(SQLString, connection))                {                  

mysql+mybatis 在mybatis一个标签中,执行多条sql语句

然后在mybatis映射文件中的标签中,一般不能执行多条sql,如下: <insert id="addUser" parameterType="User" > insert into t_users (name,password,phone) values (#{name}, #{password},#{phone}); insert into t_dep (depname) values (#{depname}) </insert> MyS

[mybatis] sql语句无错误,但是执行多条sql语句时,抛出java.sql.SQLSyntaxErrorException

错误内容 org.springframework.jdbc.BadSqlGrammarException: ### Error updating database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to u

事务应用-运行多条SQL语句

事务具有原子性,要么不运行,要么全运行,一旦成功运行永久保存.而这些正是因为事务的原子性和对数据库的持久性形成的.下面是一个关于统一给数据库中的数据改动的批量操作,利用到事务. TODO:批量改动数据库中的数据 CODE: #region ExtensionMethod /// <summary> /// 依据学号来给指定的学生加分-陈方林-2014年3月22日15:17:59 /// </summary> /// <param name="strStudentNo