asp.net中的三层结构体系显示层/逻辑层/数据层

转载 2006年06月24日 17:24:00

显示层通常由.aspx/.aspx.cs文件构成,用来显示数据页面,按三层体系的分的话,页面层应该是直接调用逻辑层中的方法
逻辑层是一个中间层,用来连接页面层和数据层,它要给页面层提供接口同时也要从数据层中调用方法供页面层使用
数据层是最底层了,一般作数据方面的操作
呵,暂时这样解释这三层体系吧,小试了一吧.
页面层[default.aspx]:只有一个DataGrid控件和一个Label控件
页面的最终执行结果

default.aspx.cs文件


using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using LemongTree.BL;
namespace services
{
        /// <summary>
        /// _default 的摘要说明。
        /// </summary>
        public class _default : System.Web.UI.Page
        {
                protected System.Web.UI.WebControls.Label Label1;
                protected System.Web.UI.WebControls.DataGrid DataGrid1;
       
                private void Page_Load(object sender, System.EventArgs e)
                {
                        // 在此处放置用户代码以初始化页面
                        if(!Page.IsPostBack)
                        {
                        setup("select * from favor",DataGrid1);
                        }
                }
                private void setup(string sql,DataGrid dg)
                {
                BLayer bl = new BLayer("server=lemongtree;uid=sa;pwd=sa;database=bbs");
                        bl.showDataGrid(sql,dg);
                        Label1.Text=bl.error;
                }

                #region Web 窗体设计器生成的代码
                override protected void OnInit(EventArgs e)
                {
                        //
                        // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
                        //
                        InitializeComponent();
                        base.OnInit(e);
                }
               
                /// <summary>
                /// 设计器支持所需的方法 - 不要使用代码编辑器修改
                /// 此方法的内容。
                /// </summary>
                private void InitializeComponent()
                {   
                        this.DataGrid1.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.DataGrid1_PageIndexChanged);
                        this.Load += new System.EventHandler(this.Page_Load);

                }
                #endregion

                private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
                {
               
                }
        }
}

逻辑层[BL.cs]


using System;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using LemongTree.DB;
using System.Web.UI.WebControls;
namespace LemongTree.BL
{
        /// <summary>
        /// BL 的摘要说明。
        /// </summary>
        public class BLayer
        {
                private string strconn;
                private SqlConnection objConn;
                private DBMaster dbm;
                private string ErrMsg;
                public BLayer(string strconn)
                {
                        //
                        // TODO: 在此处添加构造函数逻辑
                        //
                        this.strconn=strconn;
                        this.objConn=new SqlConnection(strconn);
                        dbm=new DBMaster(strconn);
                }
                public string error
                {
                        get
                        {
                        return ErrMsg;
                        }
                }
                public void showDataGrid(string strsql,DataGrid dgrd)
                {
                       
                        dgrd.DataSource=dbm.dataset(strsql);
                        ErrMsg=dbm.Error;
                        dgrd.DataBind();
                }
        }
}

数据层[DB.cs]


using System;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using Microsoft.ApplicationBlocks.Data;
namespace LemongTree.DB
{
        /// <summary>
        /// DB 的摘要说明。
        /// </summary>
        public class DBMaster
        {
                private string strconn;
                private string msg;
                private SqlConnection objConn;
                public DBMaster(string strConn)
                {
                        //
                        // TODO: 在此处添加构造函数逻辑
                        //
                        this.strconn=strConn;
                        this.objConn=new SqlConnection(strConn);
                }
                public string Error
                {
                        get
                        {
                        return msg;
                        }
                }
                public DataSet dataset(string strSql)
                {
                        DataSet dst = new DataSet();
                        try
                        {
                                dst = SqlHelper.ExecuteDataset(strconn,CommandType.Text,strSql);
                                msg="记录总数:<b>"+dst.Tables[0].Rows.Count.ToString()+"</b>";
                                return dst;
                        }
                        catch(SqlException e)
                        {
                                msg=e.Message;
                        }
                        finally
                        {
                                dst.Dispose();
                        }
                        return null;
                }
        }
}

相关文章推荐

扩展ASP.NET MVC三层框架并使用StructureMap实现依赖注入1-Model层的实现

今天开始天屹将给大家分享一个扩展的ASP.NET MVC三层框架,并使用StructureMap实现依赖注入,充分的使代码之间的耦合度降到最低。由于时间精力有限天屹无法在一篇文章中全部介绍完,将把文章...

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(4)-业务逻辑层的封装

ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据库访问层的设计Demo    (3):面向接口编程   前言:前面几篇博客我...
  • txqqnet
  • txqqnet
  • 2013年10月10日 21:01
  • 1411

.net三层体系结构的简单理解

三层体系结构的概念 用户界面表示层(USL) 业务逻辑层(BLL) 数据访问层(DAL) 图一:BLL将USL与DAL隔开了,并且加入了业务规则 各层的作用 1:数据数据访...
  • XUENIAO
  • XUENIAO
  • 2012年03月06日 10:48
  • 388

初涉三层架构,UI层和DAL层的调用,ADO.NET对数据库的数据增删改

UI层:可以说是界面层吧

ASP.NET三层结构演化构建之四——你不是我,我不是他

实体类是现实实体在计算机中的表示。比如一个人就是一个实体。当然,你也可以认为一扒屎是一个实体。我没意见的。它贯穿于整个架构,负担着在各层次及模块间传递数据的职责。大多情况下,实体类和数据库中的表(这里...
  • abigwc
  • abigwc
  • 2011年01月01日 16:40
  • 328

ASP.NET三层结构演化构建之三——用了又用

当你看到那一堆烦人的数据库操作的时候,是不是有一种想杀人的感觉呢。一定要淡定呀。要对这个世界充满信心的。生活这么美好,毕竟还是有很多美女的。封装是面向对象的一个重要思想。微软大爷提供了数据库通用操作类...
  • abigwc
  • abigwc
  • 2011年01月01日 16:19
  • 397

基于UML和ASP.NET实现三层B/S结构系统开发

摘要: 进行良好的系统分析和设计是软件项目开发的关键,构架设计的合理与否往往决定了项目的成败。本文结合一个项目的开发,阐述了基于UML的系统建模过程和基于ASP.NET实现面向对象的三层结构应用...

asp.net三层结构例子

找到一遍讲解三层结构比较清楚易懂的文章,引用一下,留为学习。 三层式开发中的层次划分讨论 先举一个曾经在哪本书上看到的例子:现在你想在1米宽的小溪上建一座桥,你会在上面放块木板就完了。如果想...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:asp.net中的三层结构体系显示层/逻辑层/数据层
举报原因:
原因补充:

(最多只允许输入30个字)