.Net Core 学习——事务

https://www.cnblogs.com/wanchenggui/p/10191603.html

 

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#事务就已经完成了。

其他:

事务操作(BEGIN/COMMIT/ROLLBACK/SAVE TRANSACTION)

第七节: EF的三种事务的应用场景和各自注意的问题(SaveChanges、DBContextTransaction、TransactionScope)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值