三层架构的事务如何处理

ningyuanye 2013-10-20 03:18:35
初学asp.net,用的是3层架构,考虑到数据同步,所以想用事务,但是百度了许久,用的都是sqlhelper,目前程序并未使用sqlhelper,所以想问下DAL层的事务(非sqlhelper方式)怎么写?BLL层又如何写?

以下是我目前的部分代码。
DAL
public static void SellInsert(string sellCode, string customer, SqlTransaction tran)
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["DBConnectionString"].ConnectionString);
try
{
conn.Open();
//tran = conn.BeginTransaction();
SqlCommand insertcmd = new SqlCommand("insert into tb_Sell(SellCode,Customer_name) values ('" + sellCode + "'," + "'" + customerName +"')", conn);
insertcmd.ExecuteNonQuery();
}
catch (System.Exception ee)
{
HttpContext.Current.Response.Write("<script language=javascript>alert('" + ee.Message.ToString() + "')</script>");
}
finally
{
conn.Close();
}
}
public static void SellDetailInsert(string sellCode, string product, SqlTransaction tran)
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["DBConnectionString"].ConnectionString);
try
{
conn.Open();
//tran = conn.BeginTransaction();
SqlCommand insertcmd = new SqlCommand("insert into tb_SellDetail(SellCode,Product) values ('" + sellCode + "'," + "'" + product +"')", conn);
insertcmd.ExecuteNonQuery();
}
catch (System.Exception ee)
{
HttpContext.Current.Response.Write("<script language=javascript>alert('" + ee.Message.ToString() + "')</script>");
}
finally
{
conn.Close();
}
}



BLL
protected void btnSave_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ChengYiConnectionString"].ConnectionString);
conn.Open();
SqlTransaction tran = conn.BeginTransaction();
try
{
DAL.Product.SellInsert(this.lblSellCode.Text,this.tbCustomerName.Text,tran);
DAL.Product.SellDetailInsert(this.lblSellCode.Text,this.tbProduct.Text,tran);
tran.Commit();
catch (Exception ex)
{
tran.Rollback();
Response.Write(ex.Message);
}
finally
{
tran.Dispose();
conn.Close();
}
}
...全文
341 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
dmz71991 2013-10-20
  • 打赏
  • 举报
回复
你把你现在BLL层的方法写到DAL层里,然后BLL层里返回你新写的有事务的方法如果有不对的地方,求指教 谢谢
threenewbee 2013-10-20
  • 打赏
  • 举报
回复
懒得说了,培训班误导你说把增删改查拆成三份,写三遍,就叫“三层架构”,这根本就是不对的。所谓BLL,你的Business Logic在哪里呢。你连三层都不会,谈什么三层上怎么实现“事务”。首先一个问题,你的事务属于不属于Business Logic?你连楼房都没有盖对,就问楼梯修在哪里,让人怎么回答。
Andy__Huang 2013-10-20
  • 打赏
  • 举报
回复
建立三个项目,如项目名称为Test,那么三个项目分别为: Test.WebClient Test.BLL Test.DAL Test.WebClient不会直接访问Test.DAL,一定是通过Test.BLL去访问Test.DAL的,这正是三层架构, 也可以建附助的项目,比较辅助类的项目,实体类的项目 你的代码: BLL protected void btnSave_Click(object sender, EventArgs e) { } BLL一般不会直接被前端访问,或直接访问前端
第1章:对Spring框架进行宏观性的概述,力图使读者建立起对Spring整体性的认识。   第2章:通过一个简单的例子展现开发Spring Web应用的整体过程,通过这个实例,读者可以快速跨入Spring Web应用的世界。   第3章:讲解Spring IoC容器的知识,通过具体的实例详细地讲解IoC概念。同时,对Spring框架的三个最重要的框架级接口进行了剖析,并对Bean的生命周期进行讲解。   第4章:讲解如何在Spring配置文件中使用Spring 3.0的Schema格式配置Bean的内容,并对各个配置项的意义进行了深入的说明。   第5章:对Spring容器进行解构,从内部探究Spring容器的体系结构和运行流程。此外,我们还将对Spring容器一些高级主题进行深入的阐述。   第6章:我们从Spring AOP的底层实现技术入手,一步步深入到Spring AOP的内核中,分析它的底层结构和具体实现。   第7章:对如何使用基于AspectJ配置AOP的知识进行了深入的分析,这包括使用XML Schema配置文件、使用注解进行配置等内容。   第8章:介绍了Spring所提供的DAO封装层,这包括Spring DAO的异常体系、数据访问模板等内容。   第9章:介绍了Spring事务管理的工作机制,通过XML、注解等方式进行事务管理配置,同时还讲解了JTA事务配置知识。   第10章:对实际应用中Spring事务管理各种疑难问题进行透彻的剖析,让读者对Spring事务管理不再有云遮雾罩的感觉。   第11章:讲解了如何使用Spring JDBC进行数据访问操作,我们还重点讲述了LOB字段处理、主键产生和获取等难点知识。   第12章:讲解了如何在Spring中集成Hibernate、myBatis等数据访问框架,同时,读者还将学习到ORM框架的混用和DAO层设计的知识。   第13章:本章重点对在Spring中如何使用Quartz进行任务调度进行了讲解,同时还涉及了使用JDK Timer和JDK 5.0执行器的知识。   第14章:介绍Spring 3.0新增的OXM模块,同时对XML技术进行了整体的了解。   第15章:对Spring MVC框架进行详细介绍,对REST风格编程方式进行重点讲解,同时还对Spring 3.0的校验和格式化框架如果和Spring MVC整合进行讲解。   第16章:有别于一般书籍的单元测试内容,本书以当前最具实战的JUnit4+Unitils+ Mockito复合测试框架对如何测试数据库、Web的应用进行了深入的讲解。   第17章:以一个实际的项目为蓝本,带领读者从项目需求分析、项目设计、代码开发、单元测试直到应用部署经历整个实际项目的整体开发过程。

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧