SqlTransaction的解析

SqlTransaction的解析SqlTransaction类表示要在SQLServer数据库中处理的Transact-SQL事务。无法继承此类应用程序通过在SqlConnection对象上调用BeginTransaction来创建SqlTransaction对象。对SqlTransactio

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

SqlTransaction类表示要在SQL Server数据库中处理的Transact-SQL事务。无法继承此类

应用程序通过在SqlConnection 对象上调用BeginTransaction 来创建 SqlTransaction 对象。对 SqlTransaction 对象执行与该事务关联的所有后续操作(例如提交或中止该事务)。

注意:在提交或回滚 SqlTransaction 时,应始终使用 Try/Catch 进行异常处理。如果连接终止或事务已在服务器上回滚,则Commit  和Rollback 都会生成

InvalidOperationException

示例:

下面的示例创建一个 SqlConnection 和一个 SqlTransaction。此示例演示如何使用 BeginTransactionCommitRollback 等方法。出现任何错误时事务都会回滚。Try/Catch 错误处理用于处理尝试提交或回滚事务时的所有错误。

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/132726.html原文链接:https://javaforall.net

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


相关推荐

  • pycharm 安装包出现超时错误 解决方案

    pycharm 安装包出现超时错误 解决方案错误代码Retrying(Retry(total=4,connect=None,read=None,redirect=None,status=None))afterconnectionbrokenby’ReadTimeoutError("HTTPSConnectionPool(host=’pypi.org’,port=443):Readtimedout.(read…

    2022年5月13日
    81
  • excel计算两个经纬度距离_经纬度与距离换算公式

    excel计算两个经纬度距离_经纬度与距离换算公式1.参考:http://jingyan.baidu.com/article/48b558e34df4d47f39c09a42.html 在E2单元格输入公式=6371004*ACOS(1-(POWER((SIN((90-B2)*PI()/180)*COS(A2*PI()/180)-SIN((90-D2)*PI()/180)*COS(C2*PI()/180)),2)+POWER((SIN(…

    2022年9月23日
    2
  • react拖拽排序组件_uniapp拖拽生成器

    react拖拽排序组件_uniapp拖拽生成器移动端的拖拽排序在react中实现 了解一下

    2022年4月20日
    216
  • 单片机毕业设计196例「建议收藏」

    单片机毕业设计196例「建议收藏」单片机本科毕业设计——心率计(脉搏测量仪)系统设计与实现(源代码+protues仿真+PCB+开题报告+讲解视频).zip,相关下载链接:https://download.csdn.net/download/dwf1354046363/72630770单片机本科毕业设计——声控灯(继电器)控制系统设计与实现(源代码+protues仿真+PCB+开题报告+讲解视频).zip,相关下载链接:https://download.csdn.net/download/dwf1354046363/72620013单片

    2022年10月4日
    5
  • 博弈论作者翟文明_伟大的博弈读书心得

    博弈论作者翟文明_伟大的博弈读书心得建议复制后观看古语有云:“世事如棋。”生活中的每个人如同棋手,其每一个行为如同在一张看不见的棋盘上布一个子,精明慎重的棋手们相互揣摩、相互牵制,人人争赢,下出诸多精彩纷呈现出来。博弈论的伟大之处正在于其通过规则、身份、信息、行动、效用、平衡等各种量化概念对人情世事进行了精妙的分析,清晰地揭示了当下社会中们的各种互动行为、互动关系,为人们正确决策提供了指导。第一章博弈论入门1.囚徒困境。缺乏信息交流,都是选对己优势策略,结果并不是系统最优。2.博弈四要素: 1)至少两个参与者。制定决策与对

    2022年10月10日
    2
  • pycharm最新激活码-激活码分享「建议收藏」

    (pycharm最新激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月28日
    83

发表回复

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

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