为了方便移到了ADO.NET分类里

事务的主要特征是,任务要么全部完成,要么都不完成

事务常用于写入或更新数据库中的数据。将数据写入文件或注册表也可以使用事物。

ADO.NET不支持跨越多个连接的事物,它总是关联到一个连接上的本地事务。

1.引入dll -----  System.Transactions

2.引入命名空间

using System.Transactions

1.引入dll---- System.Data.OracleClinet

2.引入命名空间

using System.Data.OleDb;

不带事物的多表增删改

            string str = ConfigurationManager.AppSettings["con_MES"];
OleDbConnection conn = new OleDbConnection(str);
using (conn)
{
conn.Open();
try
{
if (conn.State == ConnectionState.Open)
{
string sql1 = "insert into fruits (name, place, amount) values ('椰子', '海南', '500')";
string sql2 = "update pingtable set targetip='192.168.55.55' where id=1102";
OleDbCommand command1 = new OleDbCommand(sql1, conn);
OleDbCommand command2 = new OleDbCommand(sql2, conn);
command1.ExecuteNonQuery();
command2.ExecuteNonQuery();
MessageBox.Show("成功插入");
} }
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
MessageBox.Show("关闭连接");

单个Connection连接事务的多表增删改

            string str = ConfigurationManager.AppSettings["con_MES"];//连接字符串
OleDbConnection conn = new OleDbConnection(str);
using (conn)
{
conn.Open();
OleDbTransaction OT=conn.BeginTransaction();//打开连接后才能赋值给事物
try
{
if (conn.State == ConnectionState.Open)
{
string sql1 = "insert into fruits (name, place, amount) values ('椰子', '海南', '500')";
string sql2 = "update pingtable set targetip='192.168.55.55' where id=1102"; OleDbCommand command1 = new OleDbCommand(sql1, conn, OT);
OleDbCommand command2 = new OleDbCommand(sql2, conn, OT);
command1.ExecuteNonQuery();
command2.ExecuteNonQuery();
OT.Commit(); //事务一定要有提交和回滚
MessageBox.Show("成功插入");
} }
catch (Exception ex)
{
OT.Rollback();
MessageBox.Show(ex.Message);
}
finally
{
conn.Close(); //using原本可以关闭连接,这里提前手动加了个关闭是为了尽早的关闭连接,这个finally方法可以不写
MessageBox.Show("关闭连接");
}
}

抽出模板

            using (OracleConnection connection = new OracleConnection(connectionString))
{
connection.Open();
OracleTransaction transaction;
transaction = connection.BeginTransaction();
OracleCommand command = connection.CreateCommand();
try
{
transaction.Commit();
}
catch (Exception e)
{
transaction.Rollback();
throw e;
}
finally
{
connection.Close();
}
}

(6)C#事务处理的更多相关文章

  1. In-Memory:内存优化表的事务处理

    内存优化表(Memory-Optimized Table,简称MOT)使用乐观策略(optimistic approach)实现事务的并发控制,在读取MOT时,使用多行版本化(Multi-Row ve ...

  2. 读书笔记--SQL必知必会20--管理事务处理

    20.1 事务处理 使用事务处理(transaction processing),通过确保成批的SQL操作要么完全执行,要么完全不执行,来维护数据库的完整性. 如果没有错误发生,整组语句提交给数据库表 ...

  3. EntityFramework 事务处理

    默认情况下,当EF调用SaveChanges()时,会把生成的所有SQL命令“包”到一个“事务(transaction)”中,只要有一个数据更新操作失败,整个事务将回滚. 在多数情况下,如果你总在数据 ...

  4. Java事务处理

    Java事务处理总结     一.什么是Java事务   通常的观念认为,事务仅与数据库相关.   事务必须服从ISO/IEC所制定的ACID原则.ACID是原子性(atomicity).一致性(co ...

  5. PHP与MYSQL事务处理

    /*MYSQL的事务处理主要有两种方法.1.用begin,rollback,commit来实现begin 开始一个事务rollback 事务回滚commit 事务确认2.直接用set来改变mysql的 ...

  6. 已经过事务处理的 MSMQ 绑定(转载)

    https://msdn.microsoft.com/zh-cn/biztalk/ms751493 本示例演示如何使用消息队列 (MSMQ) 执行已经过事务处理的排队通信. 注意 本主题的末尾介绍了此 ...

  7. SQLite剖析之事务处理技术

    前言 事务处理是DBMS中最关键的技术,对SQLite也一样,它涉及到并发控制,以及故障恢复等等.在数据库中使用事务可以保证数据的统一和完整性,同时也可以提高效率.假设需要在一张表内一次插入20个人的 ...

  8. PHP系统声明式事务处理

    转自:http://www.jianshu.com/p/34261804bc45 1.数据库事务 事务(Transaction)是并发控制的基本单位.所谓的事务,它是一个操作序列,这些操作要么都执行, ...

  9. 事务处理-回滚(转账操作)(转自http://www.cnblogs.com/void-m/p/6143540.html)

    JDBC事务处理-四大原则 原子性一致性隔离性持久性 第一步:实现转账操作 假设在账户中,盖伦有余额5000元,赵信有余额2000元, 盖伦要向赵信转账1000元. 1 2 3 4 5 6 7 8 9 ...

  10. .NET分布式事务处理

    在进行数据持久化的时候,我们会经常用到事务处理.一般情况下,ADO.NET中的事务处理就能够满足我们的需要,但是,ADO.NET中的事 务不能同事对多个数据库连接进行原子性的操作:如果在你的业务环境中 ...

随机推荐

  1. PHP四种序列化方案

    原文地址:https://t.ti-node.com/thread/... 数据的序列化是一个非常有用的功能,然而目测很多人跟我一样,在刚接触这玩意的时候压根就不理解这货色到底是干啥用的,反正老师说了 ...

  2. paper:synthesizable finit state machine design techniques using the new systemverilog 3.0 enhancements之enhanced coding styles

    1.ANSI style 的代码比较紧凑. 下面规范推荐,比较好. 下面是带有parameter的module header的完整规范 一般1bit ,大家都是wire signal1 = gen_s ...

  3. 百度地图和高德地图的API视频教程

    学习地址: http://www.houdunren.com/houdunren18_lesson_152?vid=10228 素材地址: https://gitee.com/houdunwang/v ...

  4. Python爬虫一

    爬虫 什么是爬虫? 网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟客户端发送网络请求,接收请求响应, 一种按照一定的规则,自动地抓取互联网信息的程序. 原则上,只要是浏览器(客户端)能做的事情,爬虫 ...

  5. html--元素显示优先级

    HTML元素的显示优先级 一.HTML元素的显示优先级(显示层次问题,哪个在上哪个在下!总是显示在最前面)        帧元素>HTML元素优先,表单元素总>非表单元素优先        ...

  6. python面试题解析(python基础篇80题)

    1.   答:出于编程的喜爱,以及行业本身的前瞻性,创造性,优越性,越是综合的科目越能检验一个人的能力,喜欢这种有挑战的事情. 2.   答:跟随老师学习,以及自己查询资料,结合实战,进行输入输出以及 ...

  7. 链表中倒数第k个结点 【微软面试100题 第十三题】

    题目要求: 输入一个链表,输出该链表中倒数第k个结点.链表的倒数第0个结点为链表的尾指针. 参考资料:剑指offer第15题 题目分析: 1.两个指针,第一个先走k步,然后两个指针同时走,直到第一个走 ...

  8. jquery源码区块

  9. [java开发篇][dom4j模块]遍历,解析xml

    package com.softwinner.performance.benchmark; /** * Created by Administrator on 2017/7/21. */ import ...

  10. iOS----OC特性-特殊功能宏

    1.NS_ASSUME_NONNULL_BEGIN && NS_ASSUME_NONNULL_END 在Swift中存在Option类型,也就是使用?和!声明的变量.但是OC里面没有这 ...