数据库组件 Hxj.Data (十七) (事务)
2010-01-29 23:31
267 查看
首先对事务进行了升级,所以又要重新去下载一下新版本。
组件提供了简单的事务,并没有过多的封装。
先上个例子:
存储过程和直接sql执行也是可以添加事务的。
例如:
通过SetDbTransaction方法来添加事务。
FromSql也是一样。
也可以设置事务的级别,如下:
总的来说组件对事务封装的比较简单,写起来似乎不是特别方便,有待进一步的改进。
在使用过程中觉得不方便或者需要改进的希望大家能提出来,谢谢。
下一节将讲述批处理。
组件提供了简单的事务,并没有过多的封装。
先上个例子:
using(DbTranstrans=DbSession.Default.BeginTransaction()) { DbSession.Default.Update<Products>(Products._.ProductName,"apple",Products._.ProductID==1,trans); DbSession.Default.Update<Products>(Products._.ProductName,"egg",Products._.ProductID==2,trans); trans.Commit(); }
trans.Commit();必须提交,不然就执行不成功了。
如果使用trycatch的写法如下:
DbTranstrans=DbSession.Default.BeginTransaction();
try
{
DbSession.Default.Update<Products>(Products._.ProductName,"apple",Products._.ProductID==1,trans);
DbSession.Default.Update<Products>(Products._.ProductName,"egg",Products._.ProductID==2,trans);
trans.Commit();
}
catch
{
trans.Rollback();
}
finally
{
trans.Close();
}
insert、update、delete方法都提供了DbTransaction参数
所以也只是添加,修改,删除可以提交事务。
存储过程和直接sql执行也是可以添加事务的。
例如:
DbTranstrans=DbSession.Default.BeginTransaction();
DbSession.Default.FromProc("TenMostExpensiveProducts").SetDbTransaction(trans);
通过SetDbTransaction方法来添加事务。
FromSql也是一样。
也可以设置事务的级别,如下:
DbTranstrans=DbSession.Default.BeginTransaction(IsolationLevel.ReadCommitted);
总的来说组件对事务封装的比较简单,写起来似乎不是特别方便,有待进一步的改进。
在使用过程中觉得不方便或者需要改进的希望大家能提出来,谢谢。
下一节将讲述批处理。
相关文章推荐
- 数据库组件 Hxj.Data (十七) (事务)
- 数据库组件 Hxj.Data (十九) (事务二)
- 数据库组件 Hxj.Data (十九) (事务二)
- 数据库组件 Hxj.Data (二十八)(事务中的查询,查询字段字中的子查询,WhereClip的隐式转换)
- 数据库组件 Hxj.Data (二十八)(事务中的查询,查询字段字中的子查询,WhereClip的隐式转换)
- 数据库组件 Hxj.Data (四)(添加操作篇)
- 数据库组件 Hxj.Data (八)(存储过程篇)
- 数据库组件 Hxj.Data (三十)(Asp.Net 页面自动赋值与取值)
- 数据库组件 Hxj.Data (三十)(Asp.Net 页面自动赋值与取值)
- 数据库组件 Hxj.Data (二十) (分页)
- 数据库组件 Hxj.Data (二十四)(Sqlite数据库)
- 数据库组件 Hxj.Data (五)(更新操作篇)
- 数据库组件 Hxj.Data (六)(删除操作篇)
- 数据库组件 Hxj.Data (二十一) (ToScalar<TResult>)
- 数据库组件 Hxj.Data (一)(介绍篇)
- 数据库组件 Hxj.Data (三十一)(MySQL篇)
- 数据库组件 Hxj.Data (五)(更新操作篇)
- 数据库组件 Hxj.Data(七) (sql篇)
- 数据库组件 Hxj.Data (十三) (子查询)
- 数据库组件 Hxj.Data (二十二) (缓存)