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)
上一篇 2022年5月1日 上午9:00
下一篇 2022年5月1日 上午9:00


相关推荐

  • 黑马程序员-面向过程和面向对象思维方式的区别?为什么需要面向对象编程?

    黑马程序员-面向过程和面向对象思维方式的区别?为什么需要面向对象编程?

    2021年9月9日
    54
  • 所有帖子的 分类 总结

    所有帖子的 分类 总结一,数据库的数据库从入门到精通01:https://blog.csdn.net/u012932876/article/details/116212832数据库从入门到精通02:https://blog.csdn.net/u012932876/article/details/117715317数据库从入门到精通03:https://blog.csdn.net/u012932876/article/details/117359992Oracle数据库的操作:https://blog.csdn.net/u

    2022年6月6日
    32
  • PHP中生成json信息的方法

    PHP中生成json信息的方法

    2022年2月21日
    48
  • Python金融行业必备工具

    Python金融行业必备工具有些国外的平台、社区、博客如果连接无法打开,那说明可能需要“科学”上网量化交易平台国内在线量化平台:BigQuant-你的人工智能量化平台-可以无门槛地使用机器学习、人工智能开发量化策略,基于python,提供策略自动生成器镭矿-基于量化回测平台果仁网-回测量化平台京东量化-算法交易和量化回测平台聚宽-量化回测平台优矿-通联量化实验室Ricequant

    2022年7月21日
    28
  • Macromedia flash制作落叶飘下动画

    Macromedia flash制作落叶飘下动画flash制作落叶动画打开MacromediaFlash软件,新建一个flash文档将所需所有素材导入到库中设置背景并将拖入到舞台的图片转换为图片元件设置落叶图层为图层2添加引导层,自定义枫叶下落路线轨迹。打开MacromediaFlash软件,新建一个flash文档将所需所有素材导入到库中使用“文件-导入-导入到库”命令将所有素材导入到库中。导入结果如下图设置背景并将拖入到舞台的图片转换为图片元件将库中的图片拖入到舞台中间,自动创建图层1,选中左侧工具栏中的“任意变形工具”,拖动过

    2022年5月2日
    55
  • 2016跨时代意义物联网之年

    2016跨时代意义物联网之年

    2022年3月4日
    40

发表回复

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

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