DAL中开启ado事务的思路!

cnidb cnidb 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
一、先描述一下系统结构:
DBUtility
SQLHelper.cs
Model
BLL
IBLL
SQLServerDAL

OracleDAL //新增加的
IDAL
Factory

DALFaceory.cs
BLLFaceory.cs
WebOA
WebShop
WebSite


SQLHelper中是各种的数据库操作方法,都是使用后就关闭了数据库连接;

二、开发现状
在需要使用到数据库事务时,都是使用存储过程实现(图个方便)。

三:新需求
需要同时使用Oracle,并且需要事务处理;

四:暂时想到的解决方式
1.在BLL中直接写事务和SQL;我认为这会增加维护成本,您认为呢?
2.修改DAL(在每一个需要事务处理的方法中);
并在SQLHelper中增加一个public static int ExecTran(List<...的方法;
3.个人认为更加麻烦的一种方式:
3.1:SQLHelper中增加GetConn(),CloseConn(),开始事务(String 名称),执行事务(String 名称),四种方法;
3.2:各项DAL层中的各方法,比如ADD(),多写一个方法public ADD(SqlConnection conn,SqlTransaction tx,...){.....}
3.3:BLL中打开连接,开启事务,再执行各个DAL中的相应方法(传入连接和事务参数),最后执行事务,关闭连接;

四:问题
1、请评价一下以上各方式的可行性、各自优缺;
2、现在的情况下,您有什么建议?
3、如果新的工程,一开始就考虑到了这种情况,应该使用什么样的架构设计?


谢谢!








...全文

相关推荐

DAL.rar_DAL

c# Data access layer

小波思基

C# WinForms图书管理系统实战:三层架构与SQL Server数据库设计

在C#桌面应用开发中,WinForms凭借快速构建界面和丰富的控件生态,依然是许多业务系统的首选。而图书管理系统作为典型的增删改查项目,覆盖了数据库表结构设计、数据访问、业务逻辑与界面交互的完整链路。理解三层架构(UI、BLL、DAL)如何分层解耦,掌握SqlHelper封装与参数化查询的防注入原理,学会用事务保证借书还书操作的原子性,是每个.NET开发者进阶的必修课。无论用于课程设计还是企业进销存系统,这些技术都能直接复用。本文基于一套完整的C# WinForms图书管理系统源码,拆解其SQL Serve

weixin_33762130

C#医院门诊系统源码:三层架构+存储过程实战

三层架构是.NET桌面应用实现业务解耦与可维护性的核心范式,其本质在于UI、BLL、DAL职责分离与事务集中管控;存储过程则承担数据校验、业务规则固化与SQL执行优化的关键角色。二者结合显著提升系统安全性、性能稳定性及团队协作效率,在医疗信息系统、ERP、HIS等强事务场景中具有不可替代的技术价值。本文以真实可运行的C#医院门诊管理系统为例,详解从WinForm界面事件触发,到BLL事务编排,再到SQL Server存储过程落地的全链路实现,涵盖挂号、收费、处方等典型医疗业务闭环,并提供数据库部署、连接配置

蝨孨槑黽

ASP.NET WebForms三层架构实战:从虚拟主机销售系统源码看经典B/S应用开发

在B/S架构的Web应用开发中,三层架构是一种经典且广泛采用的设计模式,它将应用划分为表示层、业务逻辑层和数据访问层,以实现关注点分离和代码复用。其核心原理是通过分层解耦,让每一层专注于特定职责:表示层处理用户交互,业务逻辑层封装核心规则,数据访问层负责数据持久化。这种架构的技术价值在于提升了代码的可维护性、可测试性和团队协作效率,尤其适用于业务逻辑复杂的企业级应用。在ASP.NET WebForms技术栈中,三层架构常与SQL Server数据库、Session身份认证、支付网关集成等技术结合,应用于电商

weixin_33937913

C# WinForm仓库管理系统开发实战:从三层架构到SQL Server数据库设计

数据库管理系统是软件工程中用于持久化存储和操作数据的核心组件,其设计直接关系到应用的性能、安全性与可维护性。在桌面应用开发领域,C# WinForm凭借其成熟的控件库和高效的开发体验,常被用于构建中小型业务系统。结合经典的三层架构(UI、BLL、DAL),开发者能有效分离关注点,提升代码的可读性和可扩展性。以仓库管理系统为例,这类系统通过实现**入库管理**、**出库管理**、库存盘点与报表生成等核心功能,将传统手工流程数字化,显著提升了仓储作业的准确性与效率。其技术价值在于提供了一个完整、可独立部署的解决

weixin_33841722
评论 10
收藏 已收藏
分享
返回顶部
cnidb
C# 111,129 成员 642,539 内容