c#事务用法

 
/////ado.net1.0中使用Transacation(事务)
string connectionString = "database=Northwind;pwd=admin;uid=sa;server=DATABASE-VPC\\SQL2005";
using (SqlConnection conn = new SqlConnection(connectionString))
{
    conn.Open();
    SqlTransaction transaction = conn.BeginTransaction();
    try
    {
        using (SqlCommand cmd = new SqlCommand())
        {
            cmd.Connection = conn;
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = "";
            cmd.Transaction = transaction;
            cmd.ExecuteNonQuery();
            transaction.Commit();//提交事务
        }
    }
    catch
    {
        transaction.Rollback();//事务回滚
    }
}
/////2.0中使用事务
string connectionString = "database=Northwind;pwd=admin;uid=sa;server=DATABASE-VPC\\SQL2005";
string connectionStringTwo = "database=Test;pwd=admin;uid=sa;server=DATABASE-VPC\\SQL2005";
using (TransactionScope transaction = new TransactionScope())//使用事务
{
    try
    {
        using (SqlConnection conn = new SqlConnection(connectionString))
        {
            using (SqlCommand cmd = new SqlCommand())
            {
                cmd.CommandText = "insert into [member] (name) values (‘test‘)";
                cmd.CommandType = CommandType.Text;
                cmd.Connection = conn;
                conn.Open();
                cmd.ExecuteNonQuery();
            }
        }
        using (SqlConnection conn = new SqlConnection(connectionStringTwo))
        {
            using (SqlCommand cmd = new SqlCommand())
            {
                cmd.CommandText = "insert into [member] (name) values (‘test‘)";
                cmd.CommandType = CommandType.Text;
                cmd.Connection = conn;
                conn.Open();
                cmd.ExecuteNonQuery();
            }
        }
        transaction.Complete();//就这句就可以了。
    }
    catch (Exception ex) { MessageBox.Show(ex.Message); }
}
/*ado.net1.0与ado.net2.0中对比
1.0中不能跨数据库,速度慢
2.0中可以跨数据库,2.0中不再使用com+,速度比1.0快50%(因为它不用把大量的时间消耗在查找在com+中)
2.0中的事务会自动判断使用何种事务(不用您考虑是简单事务还是分部式事务)。
2.0中的Transactions新添加了命名空间。没有com+注册和com+的开销。
*/

c#事务用法

时间: 2024-10-16 05:38:20

c#事务用法的相关文章

SQL事务用法begin tran,commit tran和rollback tran的用法

Sql Server 2005/2008中提供了begin tran,commit tran和rollback tran来使用事务. begin tran表示开始事务, commit tran表示提交事务, rollback tran表示回滚事物 EXEC TEST_PROC '文综','包括历史,地理,政治','政治','文综的一门' CREATE PROCEDURE [dbo].[TEST_PROC] @A_Name NVARCHAR(20), -- A表姓名 @A_Remark NVARC

Redis学习笔记(7)-事务

package cn.com; import java.util.List; import redis.clients.jedis.Jedis; import redis.clients.jedis.Transaction; public class Redis_Transactions { public static Jedis redis = new Jedis("localhost", 6379);// 连接redis /** * 基本事务用法 * 默认给user1,user2都

ci事务

CI框架百问百答:CodeIgniter的事务用法?--第9问 时间 2013-06-06 10:57:45  CSDN博客 原文  http://blog.csdn.net/haor2756/article/details/9036971 主题 数据库CodeIgniter 做为一名码工,没用过事务,那也不是好码工. CodeIgniter的数据库抽象允许你在支持事务安全的数据库表中使用事务.在MySQL中,你需要用InnoDB或BDB表而不是更常用的MyISAM.大多数其它的数据库平台都原生

MySQL学习笔记-事务

一 数据库事务概念 数据库事务(Database Transaction)其实就是执行对数据库一系列操作,而事务处理则是要么完全执行所有操作,要么完全不执行任何操作,这样可以保证数据的安全性和稳定性. 二 事务特性 事务有所谓的ACID特性,其特性分别如下: 1.原子性(Atomicity):原子意为最小的粒子,或者说不能再分的事物. 数据库事务的不可再分的原则即为原子性. 组成事务的所有查询必须: 要么全部执行,要么全部取消. 2.一致性(Consistency):指数据的规则,在事务前/后应

winform中的ListBox和ComboBox绑定数据用法实例

本文实例讲述了winform中的ListBox和ComboBox绑定数据用法.分享给大家供大家参考.具体实现方法如下: 本例实现将集合数据绑定到ListBox和ComboBox控件,界面上显示某个属性的内容,代码如下: 代码如下: //- //自定义了Person类(有Name,Age,Heigth等属性) List<Person> persons=new List<Person>(); persons.Add(new Person("WuMiao",18,17

ORM中的锁和事务

锁 sql语句加锁 select * from book where id=1 for update; begin; start transaction; select * from t1 where id=1 for update; commit rollback; django orm models.Book.objects.select_for_update().filter(id=1) 全局事务 在Web应用中,常用的事务处理方式是将每个请求都包裹在一个事务中.这个功能使用起来非常简单,

4.高级特性

1,查看extract参数文件 GGSCI (db11) 4> view param lhremd1 EXTRACT lhremd1 setenv(NLS_LANG=AMERICAN_AMERICA.ZHS16GBK) USERID ogg, PASSWORD ogg ReportCount Every 30 Minutes, Rate Report at 01:00 ReportRollover at 01:15 DiscardFile dirrpt/LHREMD1.dsc, Append D

Junit使用教程 转

几乎所有程序员都听说过Junit的大名,但不知真正懂得运用它的人有多少,我便是其中的一个小白. 知道Junit是用来测试的,但却把“宝刀”当成了“菜刀”用.为了从此不再菜鸟,特此总结整理了下Junit的知识点. 开始之前确保你的项目引入了junit-xxx.jar和hamcrest-core-xxx.jar这两个包,xxx是版本号. 一.建立Junit测试类 1. 右击test测试包,选择New-->Oher... 2. 在窗口中找到Junit,选择Junit Test Case 3. 输入名称

软件测试assert

之前实习做过一段时间测试,现做个总结: 实习测试的是一款CM系统(case 系统),来记录IT部门处理的维修,服务,反馈,预定服务等case:b/s架构,人少小项目,实习时间短,去了已经快完工,主要测试VPN登陆,提交邮件反馈,系统内存分析有无内存泄露等:(eclipse MAT插件) 白盒黑盒都做: 白盒利用:逻辑覆盖法和基本路径法进行设计,给定的人测试逻辑,代码测试各个模块功能, 黑盒主要验证其功能:实现能不能打通:case优先级,备注乱码,邮件自动查找,case跟踪等 1.