c#添加事物(全部执行和带保存点的执行)

全部执行

 protected void Button2_Click(object sender, EventArgs e)
        {
            // 执行事务
            SqlConnection con = new SqlConnection(str);
            con.Open();
            SqlTransaction tran = con.BeginTransaction();

            try
            {
                SqlCommand cmd1 = new SqlCommand("INSERT INTO Code( name ) VALUES ( ‘ww1‘)", con);
                SqlCommand cmd2 = new SqlCommand("INSERT INTO Code( name ) VALUES ( ‘ww2‘)", con);
                cmd1.Transaction = tran;
                cmd2.Transaction = tran;
                cmd1.ExecuteNonQuery();
                cmd2.ExecuteNonQuery();
                tran.Commit();
            }
            catch
            {
                tran.Rollback();
            }
            finally
            {
                con.Close();
                GetData();
            }
        }

执行带保存点的事务

 protected void Button3_Click(object sender, EventArgs e)
        {
            // 执行带保存点的事务
            // 执行事务
            SqlConnection con = new SqlConnection(str);
            con.Open();
            SqlTransaction tran = null;
            tran = con.BeginTransaction();
            try
            {
                SqlCommand cmd1 = new SqlCommand("INSERT INTO Code( name ) VALUES ( ‘ww3‘)", con);
                SqlCommand cmd2 = new SqlCommand("INSERT INTO Code( name ) VALUES ( ‘ww4‘)", con);
                cmd1.Transaction = tran;
                cmd1.ExecuteNonQuery();
                tran.Save("One");
                cmd2.Transaction = tran;
                cmd2.ExecuteNonQuery();
                tran.Rollback("One");
                tran.Commit();
            }
            catch
            {
                tran.Rollback();

            }
            finally {
                con.Close();
                GetData();
            }
        }

效果图

c#添加事物(全部执行和带保存点的执行)

时间: 2024-07-29 13:44:23

c#添加事物(全部执行和带保存点的执行)的相关文章

Unity3D中自带事件函数的执行顺序(转)

原文:http://www.jianshu.com/p/1d93ece664e2 在Unity3D脚本中,有几个Unity3D自带的事件函数按照预定的顺序执行作为脚本执行.其执行顺序如下: 编辑器(Editor) Reset:Reset函数被调用来初始化脚本属性当脚本第一次被附到对象上,并且在Reset命令被使用时也会调用.编者注:Reset是在用户点击Inspector面板上Reset按钮或者首次添加该组件时被调用.Reset最常用于在见识面板中给定一个默认值. 第一次场景加载(First S

循环保存的对象在事物提交后发现只保存了一个对象

有时候我们在使用事务循环保存多个对象时,可能会出现在提交事务后发现只保存了最后一个对象 例如 public void saveSystemDDL(SystemDDLPojo systemDDLPojo) {        String keywordname = systemDDLPojo.getKeywordname();        String[] ite = systemDDLPojo.getItemname();        String typeflag = systemDDLP

Unity3D中自带事件函数的执行顺序

在Unity3D脚本中,有几个Unity3D自带的事件函数按照预定的顺序执行作为脚本执行.其执行顺序如下: 编辑器(Editor) Reset:Reset函数被调用来初始化脚本属性当脚本第一次被附到对象上,并且在Reset命令被使用时也会调用.编者注:Reset是在用户点击Inspector面板上Reset按钮或者首次添加该组件时被调用.Reset最常用于在见识面板中给定一个默认值. 第一次场景加载(First Scene Load)这些函数会在一个场景开始(场景中每个物体只调用一次)时被调用.

[moka同学摘录]iptables防火墙规则的添加、删除、修改、保存

文章来源:http://www.splaybow.com/post/iptables-rule-add-delete-modify-save.html 本文介绍iptables这个Linux下最强大的防火墙工具,包括配置iptables三个链条的默认规则.添加iptables规则.修改规则.删除规则等. 一.查看规则集 iptables --list -n // 加一个-n以数字形式显示IP和端口,看起来更舒服 二.配置默认规则 iptables -P INPUT DROP  // 不允许进  

【执行力决定命】第2集《老板开始喜欢你,带着责任心开启执行力》

「音频原文」http://dwz.cn/6sANwk 大家好,我是林琳笨,今天和大家一起分享责任心的重要性,为什么老板喜欢有责任心的人?甚至相亲也一定要求对方是一个有责任心的人.所以本期话题我取名<老板开始喜欢你,带着责任心开启执行力> 责任心的理论定义是:个人对自己和他人.对家庭和集体.对国家和社会所负责任的认识.情感和信念,以及与之相应的遵守规范.承担责任和履行义务的自觉态度. 我们这里说的责任心.执行力,一般是指在工作中. 不过在我看来:责任就是分内应该做的事儿. 每个人都有责任心,但边

windows linux 使用python执行系统命令并将结果保存到变量

最近需要用到os.system 发现不能赋值到变量 后查有更新的模块,如下: os.system os.spawn* os.popen* popen2.* commands.* 重新使用content=os.popen('help').read() 就能获取到了 import pyodbcimport sysimport osimport commands #python conn sql server2008R2conn = pyodbc.connect( driver='{sql serve

CAD执行一个带参数的命令(com接口VB语言)

主要用到函数说明: MxDrawXCustomFunction::Mx_SendStringToExecute 执行一个带参数的命令.详细说明如下: 参数 说明 CString sCmaName 命令名 Param 命令参数 VB中实现代码说明: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 Dim param As MxDrawResbuf Set param = New MxDrawRes

selenium在执行phantomjs的API并获取执行结果

selenium在执行phantomjs的API并获取执行结果 新博客地址:http://bendawang.site/article/selenium%E5%9C%A8%E7%9B%AE%E6%A0%87%E9%A1%B5%E9%9D%A2%E6%89%A7%E8%A1%8Cphantomjs%E7%9A%84API%E5%B9%B6%E8%8E%B7%E5%8F%96%E8%BF%94%E5%9B%9E%E5%80%BC(ps:短期内csdn和新博客会同步更新) 前言 因为最近要写一个抓取s

postman——集合——执行集合——集合工作流(集合执行顺序)

建立工作流程 开始收集运行时,所有请求均按照在主应用程序中看到的顺序运行.因此,首先按照文件夹的顺序执行所有请求,然后再执行集合根目录中的所有请求. 但是,您可以使用称为的内置函数来覆盖此行为postman.setNextRequest().顾名思义,此功能允许您指定下一个运行的请求. 让我们看一个样本集合以了解此功能. 入门 基本工作流程 进阶工作流程 入门 在开始之前,请下载并导入 collection.json作为本主题将讨论的示例. 基本工作流程 假设我们有一个包含四个请求的集合.如果直