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

->事务具有四个特性:原子性、隔离性、一致性、持久性。这四个特性通常称为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. EditText的一些使用技巧

    1.让EditText不自动获取焦点 将EditText的某个父级控件设置成 android:focusable="true" android:focusableInTouchMo ...

  2. SaltStack 模块

    包安装模块.文件维护模块.服务模块 zabbix_agent: pkg.installed: - name: zabbix22-agent file.managed: - name: /etc/zab ...

  3. 更新合并数组的es6方法

  4. js关卡函数,throat函数实现,定时运行函数

    function throat(callback,num){ var timer = null; callback = callback || function(){}; return functio ...

  5. 常用 shell 命令

    watch watch -n 1 -d "ps -ef | grep php" 功能:监控 PHP 进程的变化 原理: 重复的执行后面的命令,默认时间间隔是2秒 参数解释 -d 高 ...

  6. sublime使用经验汇总

    1. source insight 会对某个修改频繁的文件做多次备份.我们用sublime进行多个文件搜索时,需要把备份的文件排除在外. e:\work\code\sourcev, *.h, *.cp ...

  7. 执行perl xttdriver.pl报错Can't locate Getopt/Long.pm in @INC

    环境:AIX 6.1 + Oracle 10.2.0.4 现象:在做xtts测试时,源环境使用Oracle自带的perl执行xttdriver.pl报错如下: $ $ORACLE_HOME/perl/ ...

  8. LeetCode8.字符串转整数(atoi)

    题目链接:https://leetcode-cn.com/problems/string-to-integer-atoi/ 实现 atoi,将字符串转为整数. 该函数首先根据需要丢弃任意多的空格字符, ...

  9. Mongodb 文档时间字段修改

    mongo文档[tblEvent]如下: {     "_id" : ObjectId("5a0415f9bf28b684b1c7f5b2"),     &qu ...

  10. jdk8新特性-亮瞎眼的lambda表达式

    jdk8之前,尤其是在写GUI程序的事件监听的时候,各种的匿名内部类,大把大把拖沓的代码,程序毫无美感可言!既然Java中一切皆为对象,那么,就类似于某些动态语言一样,函数也可以当成是对象啊!代码块也 ...