ado.net中事务的使用

时间:2022-08-27 19:47:27

ADO.Net中也提供了事务处理功能,通过ADO.net事务,可以将多个任务绑定在一起,如果所有的任务成功,就提交事务,如果有一个任务失败,就讲滚回事务

执行ADO.Net事务包含四个步骤,接下来以SQLTransaction对象为例介绍:

1:调用SqlConnection对象的BeginTransaction()方法,创建一个SqlTransaction对象标记事务开始

2:将创建的SqlTransaction对象分配给要执行的SqlCommand的Transaction属性
3:调用想对应的方法执行SQLCommand命令
4:调用SqlTransaction的Commit()方法完成事务,或者调用Rollback()方法终止事务

(注意事项:在调用BeginTransaction()方法开始事务之前,要打开数据库连接,否则将出现异常)
 
SqlTransaction trans = null;
SqlConnection con = new Sqlconnection("数据库连接语句");
try
{
con.Open();
trans = con.BeginTransaction();
SqlCommand com = new SqlCommand();
//一下4步是要执行SqlParameter,如果不执行可以直接跳过使用com.CommandText="SQL语句";
com.CommandText = @"数据库语句 条件=@变量";
SqlParameter para = new SqlParameter("变量","值");
com.Parameters.Add(para);
com.CommandText=com.CommandText; com.Connection=con;
com.Transaction=trans;
com.ExecuteNonQuery();//执行方式自己选择
trans.Commit();//执行提交事务 }catch
{
trans.Rollback();//如果前面有异常则事务回滚
}
finally
{
con.Close();
}

  

 

ado.net中事务的使用的更多相关文章

  1. ado.net 中事务的使用

    SqlHelper 类方法中启用事务 public static int UpdateByTran(List<string> sqlList) { SqlConnection conn = ...

  2. ADO&period;NET中的TransactionScope何时需要启用MSTDC(分布式事务管理)

    我们知道在ADO.NET中可以用TransactionScope来将多个SqlConnection(多个数据库连接)执行的Sql语句放入一个事物中提交或取消,但是使用TransactionScope的 ...

  3. ADO&period;NET中使用事务进行数据库读写的办法

    使用事务一般是进行数据写入,数据读取一般是不需要这货的 第一种办法: 使用存储过程: 顾名思义,在存储过程中定义好变量,定义好事务开始,结束,错误回滚然后在ADO.NET中正常调用存储过程的方法就行 ...

  4. ADO&period;NET 中的数据并发

    当多个用户试图同时修改数据时,需要建立控制机制来防止一个用户的修改对同时操作的其他用户所作的修改产生不利的影响.处理这种情况的系统叫做“并发控制”.并发控制的类型通常,管理数据库中的并发有三种常见的方 ...

  5. ADO&period;NET中SQL Server数据库连接池

    连接到数据库服务器通常由几个需要很长时间的步骤组成. 必须建立物理通道(例如套接字或命名管道),必须与服务器进行初次握手,必须分析连接字符串信息,必须由服务器对连接进行身份验证,必须运行检查以便在当前 ...

  6. SQL server中事务的四个属性特征&lpar;ACID&rpar;

    事务的概念.类型和四个特征(ACID). 1.事务(Transaction)是并发控制的单位,是用户定义的一个操作序列.这些操作要么都做,要么都不做,是一个不可分割的工作单位. 通过事务,SQL Se ...

  7. &lbrack;No0000BC&rsqb;ADO&period;NET中的几个主要对象

    ADO 指 ActiveX 数据对象(ActiveX Data Objects). 从一个 ASP 页面内部访问数据库的通常的方法是: 创建一个到数据库的 ADO 连接 打开数据库连接 创建 ADO ...

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

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

  9. ADO&period;NET 中的新增功能

    ADO.NET 中的新增功能: .NET Framework (current version) 以下是 .NET Framework 4.5 中 ADO.NET 的新增功能. SqlClient D ...

随机推荐

  1. ES&lpar;一&rpar;&colon; 架构及原理

    Elasticsearch 是一个兼有搜索引擎和NoSQL数据库功能的开源系统,基于Java/Lucene构建,可以用于全文搜索,结构化搜索以及近实时分析.可以说Lucene是当今最先进,最高效的全功 ...

  2. SendKeys:基本使用

    使用SendKeys将键击和组合键击发送到活动应用程序.此类无法实例化.若要发送一个键击给某个类并立即继续程序流,请使用Send.若要等待键击启动的任何进程,请使用SendWait. 每个键都由一个或 ...

  3. Altera SoC 内核更新3&period;7到3&period;10

    为什么需要更新呢?其实是为了更好的搭建自己的开发环境,同时熟悉altera对代码的更新和管理方式,便于进一步的熟悉和了解altera SoC开发过程.   1.下载linux代码: git clone ...

  4. HDU5874:Friends and Enemies

    题目链接: Friends and Enemies 分析: 是一道想法题,我们假设x个人互相敌对,然后有y个人与这x个人都是朋友,而这y个人互相敌对. 则有 x+y=m x*y<=n 举个例子: ...

  5. Android 中文API (69) —— BluetoothAdapter&lbrack;蓝牙&rsqb;

    前言 本章内容是  android.bluetooth.BluetoothAdapter,为Android蓝牙部分的章节翻译.本地蓝牙设备的适配类,所有的蓝牙操作都要通过该类完成.版本为 Androi ...

  6. Collections -- OrderedDict类

    普通dict(字典)在插入的时候并不记住元素的顺序,迭代器会根据散列表(哈希表)中存储的顺序来生成的.而OrderedDict则会记录元素的顺序,并且在迭代器输出时,会按现在记录的顺序进行遍历. 例: ...

  7. 从零开始一起学习SLAM &vert; 为什么要学SLAM?

    在<零基础小白,如何入门计算机视觉?>中我提到过,计算机视觉的研究目前主要分为两大方向:基于学习的方法和基于几何的方法.其中基于学习的方法最火的就是深度学习,而基于几何方法最火的就是视觉S ...

  8. LeetCode--404--左叶子之和

    问题描述: 计算给定二叉树的所有左叶子之和. 示例: 3 / \ 9 20 / \ 15 7 在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24 方法:recursive class ...

  9. redis集群搭建&plus;lua脚本的使用

    详细参考这篇文章(windows) https://blog.csdn.net/qiuyufeng/article/details/70474001 一.使用JAVA代码操作redis集群 publi ...

  10. vue之指令篇 ps简单的对比angular

    这两天在开始vue的大型项目,发现和ng还是有许多不同,这里对比下两者的指令系统 难度系数:ng的指令难度大于vue:至少vue上暂时没发现@&=:require,compile,precom ...