CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

请问前辈:这属于三层吗?

楼主caobin518(linlin)2006-09-19 13:37:33 在 .NET技术 / ASP.NET 提问

用三层做了一个留言板,包括:标题,内容  
   
   
  数据库结构  
   
  id         title       Information  
   
   
  UI层代码  
   
  private   void   Button1_Click(object   sender,   System.EventArgs   e)  
  {  
  Business.BusinessInfo   bi=new   BusinessInfo();  
  bi.InsertData(this.txtTitle.Text,this.txtMessage.Text);  
  this.lblMessage.Text="成功!";  
  }  
  ==========================================  
  Data层代码  
  public   class   DataAccessInfo  
  {  
  SqlConnection   con=null;  
  SqlCommand   com=null;  
   
  public   DataAccessInfo()  
  {  
  //  
  //   TODO:   在此处添加构造函数逻辑  
  //  
  }  
  private   void   CreateObj()  
  {  
  con=new   SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectString"]);  
  com=new   SqlCommand();  
  com.Connection=con;  
  }  
  public   void   InsertInfo(string   title,string   information)  
  {  
  CreateObj();  
   
  com.CommandType=CommandType.Text;  
  com.CommandText="INSERT   INTO   Info(title,Information)   VALUES   ('"+title+"','"+information+"')";  
   
  try  
  {  
  con.Open();  
  com.ExecuteNonQuery();  
  }  
  catch(Exception   ex)  
  {  
  throw   new   Exception(ex.Message);  
  }  
  finally  
  {  
  con.Close();  
  }  
  }  
  }  
   
  =================================  
  business层  
   
  public   void   InsertData(string   title,string   information)  
  {  
  DataAccess.DataAccessInfo   dai=new   DataAccessInfo();  
  dai.InsertInfo(title,information);  
  }  
   
   
  请问前辈,这是三层吗?  
   
   
  假如我要求对留言的标题作一些条件约束,是不是把代码加在business层中? 问题点数:50、回复次数:36Top

1 楼caobin518(linlin)回复于 2006-09-19 13:38:22 得分 0

谢谢前辈们Top

2 楼jc15271149(奶皮儿)回复于 2006-09-19 13:49:26 得分 20

1   是三层  
  2   加在business层Top

3 楼wisdom521()回复于 2006-09-19 13:58:59 得分 0

3层结构   最好把业务逻辑层和数据访问层   作为DLL组件Top

4 楼caobin518(linlin)回复于 2006-09-19 13:59:32 得分 0

如果按我这么做,  
   
   
   
  business层和Data层特别大.(dll特别大)  
   
   
  我看到一些书上讲道,应该尽可能使UI层和Data层中的Dll小.使business层中的dll大.  
  Top

5 楼jingye721(我不是弱者≮我メ他妈的谁欺负我,我全拿小本记着!≯)回复于 2006-09-19 14:05:02 得分 0

数据访问个人感觉就是那些不变的东西,business层主要看你的业务逻辑是否复杂,复杂就大点,有的就是起个直接调用过渡的作用,看需求,不一定Top

6 楼myminimouse(坚决不用baidu)回复于 2006-09-19 14:15:21 得分 0

业务层感觉总没什么可大的Top

7 楼sunjiancn(狗蛋)回复于 2006-09-19 14:29:30 得分 0

业务层看你的项目的复杂程度了Top

8 楼antiking(生活就象拉大便有时顺畅有时不顺畅.)回复于 2006-09-19 14:31:43 得分 20

public   void   InsertInfo(string   title,string   information)  
  {  
  CreateObj();  
   
  com.CommandType=CommandType.Text;  
  com.CommandText="INSERT   INTO   Info(title,Information)   VALUES   ('"+title+"','"+information+"')";  
   
  try  
  {  
  con.Open();  
  com.ExecuteNonQuery();  
  }  
  catch(Exception   ex)  
  {  
  throw   new   Exception(ex.Message);  
  }  
  finally  
  {  
  con.Close();  
  }  
  }  
  }  
  这么写合适么????数据层里放sql语句!Top

9 楼AskerX(问问)回复于 2006-09-19 14:59:43 得分 0

形式上像3层,但是感觉你还不太了解分层的理念是什么,尤其是数据持久层......Top

10 楼IamRobert(罗伯特)回复于 2006-09-19 15:27:17 得分 0

楼上的……  
  这个概念虽然N久了,但是能完全剖析的人不多……  
  数据层中应该不能出现固定的sql语句。  
  Top

11 楼caobin518(linlin)回复于 2006-09-19 16:32:58 得分 0

antiking(Q狼E行-吹雪留香一点红,孤城寻欢花满楼)  
   
  谢谢你的回复..  
   
   
  请问  
   
  public   void   InsertInfo(string   title,string   information)  
  {  
  CreateObj();  
   
  com.CommandType=CommandType.Text;  
  com.CommandText="INSERT   INTO   Info(title,Information)   VALUES   ('"+title+"','"+information+"')";  
   
  try  
  {  
  con.Open();  
  com.ExecuteNonQuery();  
  }  
  catch(Exception   ex)  
  {  
  throw   new   Exception(ex.Message);  
  }  
  finally  
  {  
  con.Close();  
  }  
  }  
  }  
  这么写合适么????数据层里  
  =========================  
  请问这段代码要放在哪里呢????Top

12 楼jingye721(我不是弱者≮我メ他妈的谁欺负我,我全拿小本记着!≯)回复于 2006-09-19 16:38:55 得分 0

可以连接数据库,写在存储过程里啊!Top

13 楼xingyaohua(邢跃华)回复于 2006-09-19 16:44:19 得分 0

形似,但你没理解了三层精髓(神)Top

14 楼caobin518(linlin)回复于 2006-09-19 17:06:16 得分 0

请下面的老大们把我这个实例改一下..改成正规的三层...........  
   
   
  刚才我查了一下资料.数据层中的确不能存在sqlTop

15 楼net205(人不可以无耻到这种地步)回复于 2006-09-19 21:35:42 得分 0

Mark.Top

16 楼lizheng__114(浪淘沙)回复于 2006-09-19 21:45:43 得分 0

多看看框架的知识吧,你的和petshop很相近,但是petshop比较适合小的项目,如果项目大点的话那整个项目就会想的十分臃肿,建议多看看Castle/ibatenet   Hibernate   NHibernate   npetshop以及设计模式的东西把,会受益非浅的Top

17 楼gezichong(鸽子虫)回复于 2006-09-19 21:51:21 得分 0

过会儿再来Top

18 楼song0320(九纹龙)回复于 2006-09-19 22:26:51 得分 0

你可以在数据层写一个生成数据库语句的类,BU层跟据需要去调用产生SQL然后执行Top

19 楼dahroswell(da)回复于 2006-09-19 22:38:53 得分 0

是三层,是最简单的三层吧!Dal层可以很少,这就要考虑面向对象的一些设计模式了!Top

20 楼renmasheshou(狼狗)回复于 2006-09-19 22:51:37 得分 0

可以算三层了~Top

21 楼zhuciqiong(阿朱)回复于 2006-09-19 23:02:30 得分 0

建议数据层放在SP中,通过接口来访问数据.  
  我觉得数据+数据关系+访问接口组成数据层  
  而业务逻辑层是完全脱离数据层  
  望指教.Top

22 楼kubbye(小蛤蟆就是我)回复于 2006-09-19 23:28:54 得分 0

yesTop

23 楼jacky_gaoying(碧海长吟)回复于 2006-09-19 23:34:57 得分 10

 
  这么改就比较合适了,其实参数还可以传数组,这样就可执行多个SQL语句,本人不建议将数据层放在存储过程中,因为放在存储过程中,可移值性不高,如果有一天换数据库,比如SQL   Server换DB2,就等死吧  
  public   void   InsertInfo(string   strSQL)  
  {  
  CreateObj();  
   
  com.CommandType=CommandType.Text;  
  com.CommandText=strSQL;  
   
  try  
  {  
  con.Open();  
  com.ExecuteNonQuery();  
  }  
  catch(Exception   ex)  
  {  
  throw   new   Exception(ex.Message);  
  }  
  finally  
  {  
  con.Close();  
  }  
  }  
  }  
  Top

24 楼liuxiaoyi666(MSMVP 小猪妹荣誉马甲之八卦兔子)回复于 2006-09-20 09:53:41 得分 0

看看petshopTop

25 楼petshop4(世界上有10种人,一种懂得什么是二进制 ,一种不懂)回复于 2006-09-20 10:15:35 得分 0

看看我就是了  
  才发现自己的名字挺好~~  
  PS:朋友给的号Top

26 楼longxin123(龙的心)回复于 2006-09-20 10:32:18 得分 0

╭═══╮ ╭═══╮ ╭══════╮           
  ╰╮ ╭╯ ╰╮ ╭╯ ╰╮ ╭══╮╰╮          
      ║ ║   ║ ║   ║ ║  ╰╮╰╮         
      ║ ║   ║ ║   ║ ║   ║ ║         
      ║ ║   ║ ║   ║ ║   ║ ║         
      ║ ║   ║ ║   ║ ║  ╭╯╭╯         
      ║ ║   ║ ║   ║ ╰══╯╭╯          
      ║ ║   ║ ║   ║ ╭═══╯           
      ║ ║   ║ ║   ║ ║               
      ║ ║   ║ ║   ║ ║               
      ║ ║   ║ ║   ║ ║               
      ╰╮╰╮ ╭╯╭╯   ║ ║               
       ╰╮╰═╯╭╯   ╭╯ ╰╮              
        ╰═══╯    ╰═══╯  
  Top

27 楼john_huang(追梦者)回复于 2006-09-20 10:37:36 得分 0

╭═══╮ ╭═══╮ ╭══════╮           
  ╰╮ ╭╯ ╰╮ ╭╯ ╰╮ ╭══╮╰╮          
      ║ ║   ║ ║   ║ ║  ╰╮╰╮         
      ║ ║   ║ ║   ║ ║   ║ ║         
      ║ ║   ║ ║   ║ ║   ║ ║         
      ║ ║   ║ ║   ║ ║  ╭╯╭╯         
      ║ ║   ║ ║   ║ ╰══╯╭╯          
      ║ ║   ║ ║   ║ ╭═══╯           
      ║ ║   ║ ║   ║ ║               
      ║ ║   ║ ║   ║ ║               
      ║ ║   ║ ║   ║ ║               
      ╰╮╰╮ ╭╯╭╯   ║ ║               
       ╰╮╰═╯╭╯   ╭╯ ╰╮              
        ╰═══╯    ╰═══╯Top

28 楼jz630(姜喆)回复于 2006-09-20 10:40:39 得分 0

╭═══╮ ╭═══╮ ╭══════╮           
  ╰╮ ╭╯ ╰╮ ╭╯ ╰╮ ╭══╮╰╮          
      ║ ║   ║ ║   ║ ║  ╰╮╰╮         
      ║ ║   ║ ║   ║ ║   ║ ║         
      ║ ║   ║ ║   ║ ║   ║ ║         
      ║ ║   ║ ║   ║ ║  ╭╯╭╯         
      ║ ║   ║ ║   ║ ╰══╯╭╯          
      ║ ║   ║ ║   ║ ╭═══╯           
      ║ ║   ║ ║   ║ ║               
      ║ ║   ║ ║   ║ ║               
      ║ ║   ║ ║   ║ ║               
      ╰╮╰╮ ╭╯╭╯   ║ ║               
       ╰╮╰═╯╭╯   ╭╯ ╰╮              
        ╰═══╯    ╰═══╯  
  Top

29 楼ZJQ100()回复于 2006-09-20 10:47:47 得分 0

是Top

30 楼sic_hcq()回复于 2006-09-20 11:04:57 得分 0

三层,我也是学习中。。。Top

31 楼dreamwaters()回复于 2006-09-20 11:18:36 得分 0

学习ing..........Top

32 楼myminimouse(坚决不用baidu)回复于 2006-09-20 11:19:14 得分 0

看这个吧  
  http://www.cnblogs.com/lovecherry/archive/2006/07/02/440840.htmlTop

33 楼vb_vs(我是一只紧张的小星星^_^)回复于 2006-09-20 11:38:59 得分 0

假如我要求对留言的标题作一些条件约束,是不是把代码加在business层中?  
  =================================  
   
  我一般是放在UI中的,最好直接用JS在页面上约束,,,这样减轻服务器压力  
   
   
  望指导~~~~~~~  
   
  至于N-Tier,,      
   
  我的一般就是   3层    
   
  dataaccess   --   busniess   --   UI    
   
  至于设计模式方面,还在研究中,,,  
  望指导,,,,Top

34 楼wangwei155()回复于 2006-09-20 11:59:03 得分 0

╭═══╮ ╭═══╮ ╭══════╮           
  ╰╮ ╭╯ ╰╮ ╭╯ ╰╮ ╭══╮╰╮          
      ║ ║   ║ ║   ║ ║  ╰╮╰╮         
      ║ ║   ║ ║   ║ ║   ║ ║         
      ║ ║   ║ ║   ║ ║   ║ ║         
      ║ ║   ║ ║   ║ ║  ╭╯╭╯         
      ║ ║   ║ ║   ║ ╰══╯╭╯          
      ║ ║   ║ ║   ║ ╭═══╯           
      ║ ║   ║ ║   ║ ║               
      ║ ║   ║ ║   ║ ║               
      ║ ║   ║ ║   ║ ║               
      ╰╮╰╮ ╭╯╭╯   ║ ║               
       ╰╮╰═╯╭╯   ╭╯ ╰╮              
        ╰═══╯    ╰═══╯  
  Top

35 楼sstgaps()回复于 2006-09-20 12:03:58 得分 0

感觉busniess是多余的,目的就是为了减慢速度Top

36 楼sorrow_man(不会我就问,零下一度)回复于 2006-09-20 13:13:49 得分 0

学习Top

相关问题

关键词

得分解答快速导航

  • 帖主:caobin518
  • jc15271149
  • antiking
  • jacky_gaoying

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo