全国统一热线:
028-86758058
18980748058
购买流程
付款方式
常见问题
在线提问
续租服务
购物车(
0
件)
用户名:
密 码:
记住
首 页
HOME
域名注册
DOMAIN
虚拟主机
WEB HOST
成品网站超市
AUTO Site
VPS主机
VPS SERVER
云 主 机
CLOUD HOST
租用托管
SERVER
海外主机
HK HOST
代理专区
AGENT
客服中心
SERVICE
站长教程
SERVICE
欢迎光临西部数据云计算中心,我们将竭诚为您提供最优质的服务!
中文域名
域名转入
域名转出
DNS管理
动态域名
获取域名证书
域名停放
域名过户
集群主机
双线主机
基本主机
港台主机
论坛主机
Linux主机
Vip合租主机
超G型主机
ASP.net主机
Java主机
智能建站主机
网店主机
美国主机
数据库
成品网站超市
智能建站主机
集群VPS主机
国内VPS主机
香港VPS主机
美国VPS主机
云主机介绍
云主机购买
服务器租用
主机托管
常见问题
香港主机
港台主机
美国主机
国内免备案
步骤流程
代理级别
代理合同
代理模式
代理优势
在线申请
产品列表
常见问题
代理商分布图
常见问题
有问必答
跟踪提问
购买流程
产品价格
付款方式
常用软件
网站备案
续租服务
汇款确认
相关文档
联系我们
域名资讯
主机资讯
行业动态
网页制作
php教程
mysql教程
域名资讯
云计算资讯
网络编程
您当前的位置:
首页
>
网络编程
>
Net教程
Asp.net 在三层架构中事务的使用实例代码
时间:2015-01-29 来源:互联网 作者:佚名
接触3层也有一段时间了,了解水平一般,前段时间在想在三层中怎么使用事务呢,放在哪呢?Sqlherper ? DAL? BLL?。然后我就疯狂的百度,好几次都是未果(因为做的都是小项目,不用事务也关系不大),今天我再次查时,好好的看了csdn上的以讨论,http://topic.csdn.net/u/20091101/19/f21697d7-8f0c-4eb3-8e59-d0fe2f0b04b0.html,结合前辈和高手们的意见,自己改了一个出来。我的想法是将事务逻辑写在业务逻辑层,
数据库
的处理还都是在SQLHELPER,BLL层通过事务SqlTransaction传值访问DAL,再访问Sqlhelper。接下来是分块的代码。
Sqlhelper:
复制代码
代码如下:
private static SqlConnection Cnn = new SqlConnection(DbConfig.ConnectionString);
#region 判读SqlConnection 是否开启连接 并开启
/// <summary>
/// 判读SqlConnection 是否开启连接 并开启
/// </summary>
/// <returns>返回SqlConnection</returns>
private static SqlConnection GetCnn()
{
if (Cnn.State == ConnectionState.Closed)
{
Cnn.Open();
}
return Cnn;
}
#endregion
#region 关闭数据库连接
/// <summary>
/// 关闭数据库连接
/// </summary>
public static void CloseCnn()
{
Cnn.Close();
}
#endregion
#region 产生一个事务并开始
/// <summary>
/// 产生一个事务并开始
/// </summary>
/// <returns>返回此事务</returns>
public static SqlTransaction BeginTransaction()
{
SqlTransaction tran = GetCnn().BeginTransaction();
return tran;
}
#endregion
DAL:
复制代码
代码如下:
public bool test(int i,SqlTransaction tran)
{
string sql = "insert into [test]([item]) values(@i)";
SqlParameter[] paras=new SqlParameter[]{new SqlParameter("@i",i)};
return sqlhelper.ExecutenQuery(sql, paras, CommandType.Text, tran)>0;
}
BLL:
复制代码
代码如下:
UserDAO userdao = new UserDAO();
public bool test()
{
using (SqlTransaction tran = SQLHelper.BeginTransaction())
{
try
{
userdao.test(2, tran);
userdao.test(3, tran);
tran.Commit(); return true;
}
catch
{
tran.Rollback();
return false;
}
finally
{
SQLHelper.CloseCnn();//关闭数据库连接
}
}
}
上述代码在此次测试中通过,若要用于真实项目中,请修改后再使用,还有本人水平一般,写的不到之处请大家见谅。欢迎大家指导指正。
来顶一下
返回首页
推荐资讯
asp.net 网页动态查询条件的实现
场景 最近有一个需求,会在 mongodb 中插入各种类型的数据,
ASP.NET怎么操作DataTable实例应用
有机会在博客园的博问频道上看到一个问题,《ASP.NET怎么操作
相关文章
adodb的事务处理咋没效果
PHP mysql事务回滚操作实例
php下pdo的mysql事务处理应用实例
PHP mysql与mysqli事务使用说明
php mysql 事务处理实现程序
MYSQL事务处理之学习笔记
mysql事务回滚数据回滚用法与问题
MYSQL事务处理使用说明
MYSQL事务之学习笔记
mysql事务回滚使用与常见问题介绍
栏目更新
栏目热门
返回首页
关于我们
联系我们
付款方式
价格总览
资讯中心
友情链接
媒体关注
有问必答
投诉建议
网站备案
《中华人民共和国增值电信业务经营许可证》编号:川B2-20080058号
官方网址:
xibushuju.com
西部数据
Copyright © 2002~2015
天府快车
版权所有
电话总机:
028-86758058
(50线) 传真:
028-86758058