SqlTransaction.Commit 方法「建议收藏」

SqlTransaction.Commit 方法「建议收藏」Commit 方法等效于Transact-SQLCOMMITTRANSACTION语句。 事务一旦提交就不能回滚,因为所有修改都已永久成为数据库的一部分.Net实例:privatestaticvoidExecuteSqlTransaction(stringconnectionString){using(SqlConnectionconnection

大家好,又见面了,我是你们的朋友全栈君。

Commit 方法等效于 Transact-SQL COMMIT TRANSACTION 语句。 事务一旦提交就不能回滚,因为所有修改都已永久成为数据库的一部分

.Net 实例:

private static void ExecuteSqlTransaction(string connectionString)
{
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        connection.Open();

        SqlCommand command = connection.CreateCommand();
        SqlTransaction transaction;

        // Start a local transaction.
        transaction = connection.BeginTransaction("SampleTransaction");

        // Must assign both transaction object and connection
        // to Command object for a pending local transaction
        command.Connection = connection;
        command.Transaction = transaction;

        try
        {
            command.CommandText =
                "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')";
            command.ExecuteNonQuery();
            command.CommandText =
                "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')";
            command.ExecuteNonQuery();

            // Attempt to commit the transaction.
            transaction.Commit();
            Console.WriteLine("Both records are written to database.");
        }
        catch (Exception ex)
        {
            Console.WriteLine("Commit Exception Type: {0}", ex.GetType());
            Console.WriteLine("  Message: {0}", ex.Message);

            // Attempt to roll back the transaction.
            try
            {
                transaction.Rollback();
            }
            catch (Exception ex2)
            {
                // This catch block will handle any errors that may have occurred
                // on the server that would cause the rollback to fail, such as
                // a closed connection.
                Console.WriteLine("Rollback Exception Type: {0}", ex2.GetType());
                Console.WriteLine("  Message: {0}", ex2.Message);
            }
        }
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/132821.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ItemDataBound里绑定数据

    ItemDataBound里绑定数据ItemDataBound里绑定数据DataRowViewdrv=(DataRowView)e.Item.DataItem;intUid=(int)drv[“UserID”];DataBinder.Eval(e.Item,”DataItem.PKIndex”);转载于:https://www.cnblogs.com/geoff/archive/2007/02/27/65…

    2022年10月8日
    0
  • DirectX修复工具全部文件修复失败或下载失败的解决方法

    DirectX修复工具全部文件修复失败或下载失败的解决方法最后更新于2019-2-24问题描述  近日接连接到一些用户的反馈,说他们在使用DirectX修复工具的时候,所有文件的状态均为修复失败或者下载失败(如下图)。虽然他们使用的是标准版或增强版而非在线修复版,程序还是会尝试下载需要的DirectX组件。注:由于我无法复现此现象,因此此图片来自网络截图。所有权归原上传者所有。  之后他们也都按照程序的提示以安全模式启动系统…

    2022年6月9日
    46
  • 优先级队列的使用[通俗易懂]

    优先级队列的使用[通俗易懂]优先级队列(priorityqueue)中的元素可以按照任意的顺序插入,却总是按照排序的顺序进行检索。也就是说,无论何时调用remove方法,总会获得当前优先级队列中最小的元素.然后,优先级队列并没有对所有的元素进行排序。如果用迭代的方式处理这些元素,并不需要对它们进行排序。优先级队列使用了一个优雅且高效的数据结构,称为堆(heap)。堆事一个可以自我调整的二叉树,对树执行添加(add)和删除(

    2022年9月16日
    0
  • 详解Linux双网卡绑定之bond0「建议收藏」

    1、什么是bond?  网卡bond是通过多张网卡绑定为一个逻辑网卡,实现本地网卡的冗余,带宽扩容和负载均衡,在生产场景中是一种常用的技术。Kernels2.4.12及以后的版本均供bonding模块,以前的版本可以通过patch实现。2、实现原理:  网卡工作在混杂(promisc)模式,接收到达网卡的所有数据包,tcpdump工作用的也是混杂模式(promisc),将两块网卡的MAC地址…

    2022年4月1日
    63
  • iphone尺寸大全对照表2021 iphone屏幕尺寸大全

    iphone尺寸大全对照表2021 iphone屏幕尺寸大全iPhone11 6.1英寸 iPhone11Pro 5.8英寸 iphone手机爆降价1500这活动太给力了机会不容错过http://iphone.adiannao.cn/2iPhone11ProMax 6.5英寸iPhoneSE2020款 4.7英寸 iPhone12mini 5.4英寸 iPhone12 6.1英寸 iPhone12Pro 6.1英寸 iPhone12ProMax 6.7英寸第一代iPhone2GiOS1

    2022年5月15日
    1.0K
  • Mac 热键大全

    屏幕捕捉快捷键动作……………………….保存到…………-快捷键全屏捕捉……………………桌面(.PDF文件)…..

    2021年12月24日
    46

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号