事务->:事务是恢复和并发控制的基本单位

->事务具有四个特性:原子性、隔离性、一致性、持久性。这四个特性通常称为ACID

Begin transaction/tran   --开始事务

Commit transaction/tran  --提交事务

Rollback transaction/tran  --回滚事务

Select * from userinfo with(nolock)       --表示在查询的时候不加共享锁

一个简单的小案例

using (SqlConnection conn = new SqlConnection(connStr))

{

conn.Open();

//开始事务

SqlTransaction ts = conn.BeginTransaction();

try

{

string sql = "insert into BuyRecord(UID,PID,BRNum,BRTime) values(@uid,@pid,@num,@time)";

SqlCommand cmd = new SqlCommand(sql, conn);

cmd.Transaction = ts;

cmd.Parameters.AddWithValue("@uid", brm.UID);

cmd.Parameters.AddWithValue("@pid", brm.PID);

cmd.Parameters.AddWithValue("@num", brm.BRNum);

cmd.Parameters.AddWithValue("@time", DateTime.Now);

cmd.ExecuteNonQuery();

string uptsql = " update ProductInfo set ProductNum=ProductNum-@buyNum where ProductID=@id";

cmd.CommandText = uptsql;

cmd.Parameters.AddWithValue("@buyNum", brm.BRNum);

cmd.Parameters.AddWithValue("@id", brm.PID);

cmd.ExecuteNonQuery();

ts.Commit();

return 1;

}

catch (Exception)

{

ts.Rollback();

return -1;

throw;

}

事务 c#的更多相关文章

  1. Spring基于AOP的事务管理

                                  Spring基于AOP的事务管理 事务 事务是一系列动作,这一系列动作综合在一起组成一个完整的工作单元,如果有任何一个动作执行失败,那么事务 ...

  2. SQLServer事务同步下如何收缩日志

    事务同步是SQLServer做读写分离的一种常用的方式. 随着业务数据的不断增长,数据库积攒了大量的日志,为了腾出硬盘空间,需要对数据库日志进行清理 订阅数据库的日志清理 因为订阅数据库所有的数据都来 ...

  3. 事务日志已满,原因为“ACTIVE_TRANSACTION”

    汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 异常处理汇总-数据库系列  http://www.cnblogs.com/dunitia ...

  4. Mysql事务探索及其在Django中的实践(二)

    继上一篇<Mysql事务探索及其在Django中的实践(一)>交代完问题的背景和Mysql事务基础后,这一篇主要想介绍一下事务在Django中的使用以及实际应用给我们带来的效率提升. 首先 ...

  5. Mysql事务探索及其在Django中的实践(一)

    前言 很早就有想开始写博客的想法,一方面是对自己近期所学知识的一些总结.沉淀,方便以后对过去的知识进行梳理.追溯,一方面也希望能通过博客来认识更多相同技术圈的朋友.所幸近期通过了博客园的申请,那么今天 ...

  6. CRL快速开发框架系列教程七(使用事务)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  7. 玩转spring boot——结合JPA事务

    接着上篇 一.准备工作 修改pom.xml文件 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=&q ...

  8. MySQL 系列(三)你不知道的 视图、触发器、存储过程、函数、事务、索引、语句

    第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 你不知道的数据库操作 第三篇:MySQL 系列(三)你不知道的 视图.触发器.存储过程.函数 ...

  9. PHP中PDO事务的使用方法

    事务 (Transaction) 是操作数据库中很重要的一个功能, 它可以让你预定一条, 或者一系列 SQL 语句, 然后一起执行. 在执行的过程中, 如果其中的某条执行失败, 可以回滚所有已更改的操 ...

  10. Hibernate中事务的隔离级别设置

    Hibernate中事务的隔离级别,如下方法分别为1/2/4/8. 在Hibernate配置文件中设置,设置代码如下

随机推荐

  1. NYOJ 棋盘覆盖

    数字很大,要用大数乘法. #include<iostream> #include<stdio.h> #include<string.h> #include<q ...

  2. JVM内存管理(转)

    转载出处:http://blog.csdn.net/wind5shy/article/details/8349559 模型 JVM运行时数据区域 JVM执行Java程序的过程中,会使用到各种数据区域, ...

  3. 字符串类型 str-->转义符-->字符串格式化-->占位符-->综合案例

    # ###字符串类型 str """ 用引号起来的就是字符串 三种引号:单引号 双引号 三引号 """ """ ...

  4. sap 类的左侧导航栏

  5. [js]js的表单验证

    http://uule.iteye.com/blog/2183622 表单验证类 <form class="form" method="post" id= ...

  6. [sh]basename&dirname截取路径和文件名&case参数选项

    给出全路径,取出路径和文件名 basename使用示例 http://codingstandards.iteye.com/blog/840784 示例一 [root@web ~]# basename ...

  7. (转)以太坊(Ethereum)创世揭秘 以太坊(Ethereum)创世揭秘

    什么是以太坊(Ethereum) 以太坊(Ethereum)是一个基于区块链技术,允许任何人构建和使用去中心化应用的区块链平台.像比特币一样,以太坊是开源的,并由来自全世界的支持者们共同维护.与比特币 ...

  8. docker容器多服务(不推荐)

    1.最常用方式配置进程管理工具Supervisor 2.最简单的就是把多个启动命令放到一个启动脚本里面,启动的时候直接启动这个脚本 第一种方式: 1.构建基础镜像 FROM lmurawsk/pyth ...

  9. 20165321实验一Java开发环境的熟悉-1

  10. phing

    javascript compress java -jar ./compiler.jar --js {from} --js_output_file {to}