• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
孤单成双
博客园    首页    新随笔    联系   管理    订阅  订阅

数据访问——关于事务

事务——transaction ,它有一个典型的特点:ACID

A——原子性:事务是一个整体,不能再拆分,要么都执行要么都不执行;

C——一致性:事务执行之前和执行之后的数据要一致;

I——隔离性:事务在执行过程中,所有与事务相关的对象都不能再执行其他的操作(相当于被隔离起来)

D——持久性:事务在遇到某种特殊情况导致操作未执行完的时候,数据会回滚到最初状态

事务分为两类:

一,链接内事务:在链接打开后,使用事务控制多条语句的执行

1,创建事务对象

SqlTransaction trans=conn.BeginTransaction();  //注意必须是链接打开后编写

2,把事务对象挂到命令对象上,让命令执行带有事务的功能

cmd.Transaction=trans;

3,执行CommandText命令操作数据库

(1)成功后调用事务对象的Commit()方法来提交执行的结果。

(2)失败后调用事务对象的Rollback()方法来回滚执行前的状态。

 二,跨链接的事务:TransactionScope对象

使用该类事务的步骤:

1,启动服务:DTC 分步式事务协调器

2,引用事务程序集,在解决方案管理器的引用中,右键添加引用:system.Transactions

3,使用using system.Transactions 把命名空间导进来

4,使用TransactionScope类来控制事务。

using (TransactionScope ts = new TransactionScope())
{
DeleteWork("p001");
DeleteFamily("p001");
DeleteInfo("p001");
ts.Complete(); //必须。它是用来提交事务的。
}

 

posted @ 2015-05-09 09:13  孤单成双  阅读(171)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3