zoukankan      html  css  js  c++  java
  • SQLServer事务在C#当中的应用

    1:事务是什么        

       事务指的是一系列SQL操作的逻辑工作单元,,要么完全地执行,要么完全地不执行。

      一个逻辑工作单元必须有4个属性原子性(Atomic)一致性(Consistent)隔离型(Isolated)持久性(Durable),简称为ACID

    2:在c#中怎么简单实现事务

    在c#实现中实现数据库的事务其实并不难,但是我们要知道为什么使用数据库的事务,我们在实际业务场景中可能会遇到这样的一种情况:例如我们需要在一张数据库中插入两条数据,有的时候会出现第一条数据插入成功,但是第二条数据并未插入成功的情况,在这种业务情况下,我们不可能只保留第一条数据而忽略失败的第二条数据,因此,在这种情况下引入数据库的事务机制,就是为了让这组操作要么同时执行,要么同时不执行。

    首先定义一个数据库连接并且打开,这里例子举的是SQL数据库,代码如下

      string conn = Config.sqlTransactionString;
      SqlConnection myConnection = new SqlConnection(conn);
      myConnection.Open();

    接着通过数据库连接对象启动业务并为事务创建一个命令

     //启动一个事务
     SqlTransaction myTrans = myConnection.BeginTransaction();
     //为事务创建一个命令
     SqlCommand myCommand = new SqlCommand();
     myCommand.Connection = myConnection;
     myCommand.Transaction = myTrans;

    创建完事务之后,我们就开始执行相应的SQL数据库操作

        try
        {
           //插入两条ID相同的数据,必定会引发异常,以此来试验事务的用法
            command.CommandText = "insert into student2(Id,Name) values (100,'数据99')";
            command.ExecuteNonQuery();
            command.CommandText = "insert into student2(Id,Name) values (100,'数据100')";
            command.ExecuteNonQuery();
            myTrans.Commit();     //事务提交      
        }
        catch (Exception ex)
        {
            myTrans.Rollback();  //遇到错误,回滚
        }

    至此,一个简单的c#事务就已经完成了。

    备注:数据库表:student2,只有两个字段:Id和Name

  • 相关阅读:
    2019-2020-1 20199324《Linux内核原理与分析》第七周作业
    2019-2020-1 20199324《Linux内核原理与分析》第六周作业
    2019-2020-1 20199324《Linux内核原理与分析》第五周作业
    介绍一个比较了各种浏览器对于HTML5 等标准支持程度的网站
    JaveScript 中的正则表达式
    Windows中查看进程的资源消耗(cpu, Disk,Memory,NetWork)
    Windows中通过命令行启动打开Service 管理工具
    删除Widows 启动项中的信息
    LAMP中添加多虚拟主机
    多线程的安全问题
  • 原文地址:https://www.cnblogs.com/wanchenggui/p/10191603.html
Copyright © 2011-2022 走看看