• Sql Server事务简单用法


     1 var conStr = "server=localhost;database=Data;user=sa;pwd=123456";
     2             using (var connection = new SqlConnection(conStr))
     3             {
     4                 connection.Open();
     5                 var sql =
     6                     string.Format(
     7                         "update dbo.AutoStationData set Temperture={0} where StationNum=58365 and DateTime='{1}'", 8.5,
     8                         new DateTime(2014, 01, 17, 09, 52, 00, 000));//可以正常执行的sql语句
     9 
    10                 var sql2 = string.Format(
    11                         "update dbo.AutoStationData set Temperture={0} where StationNu=98801 and DateTime='{1}'", 8.1,
    12                         new DateTime(2014, 01, 17, 09, 52, 00, 000)); //不可以正常执行的sql语句 不存在字段StationNu
    13                 using (var command = new SqlCommand(sql,connection))
    14                 {
    15                     var transation = connection.BeginTransaction();//创建事务
    16                     try
    17                     {
    18                         command.Transaction = transation;
    19                         
    20                         command.CommandText = sql;
    21                         command.ExecuteNonQuery();
    22                         
    23                         command.CommandText = sql2;
    24                         command.ExecuteNonQuery();
    25                         
    26                         transation.Commit();
    27                     }
    28                     catch (Exception e1)
    29                     {
    30                         try
    31                         {
    32                             
    33                             transation.Rollback();
    34                         }
    35                         catch (Exception e2)
    36                         {
    37                             
    38                             Console.Write(e2.Message);
    39                         }
    40                         
    41                     }
    42                       
    43                 }
    44             }

    写一个可以正常执行的sql语句sql,一个错误的sql语句sql2。执行完21行代码,在数据库中查询全表,会显示正在查询...,直接执行后面的代码,由于sql2不能正确执行,跳转到catch,执行回滚,21行修改的字段值还原。数据库这才能执行全表查询 正在查询....变成查询已成功执行。从执行第一个sql语句开始,知道提交事务成功,或者回滚成功这段时间这个事务独占这一张表,也体现了事务的原子性。  

    Do something useful!
  • 相关阅读:

    JVM基础
    rpm、yum、解压缩安装
    Vim使用及账号用户管理
    linux常用操作
    属主权限和属组权限
    解决Hystrix Dashboard 一直是Loading ...的情况
    扫描不到了@FeignClient注解的调用接口
    springcloud与springboot版本问题
    【力扣】6和9组成的最大数字 题解
  • 原文地址:https://www.cnblogs.com/foreveryt/p/3979970.html
Copyright © 2020-2023  润新知