• .NET 三层架构


    三层架构简介:

      三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:界面层(User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)。区分层次的目的即为了“高内聚低耦合”的思想。在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。微软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层(又或称为领域层)、表示层。

    步骤如下:

    1.新建一个空白解决方案,起好结局方案名称.

    2.右击解决方案,选择C#语言 ==> 类库 ,起好类库名称. 比如:BookShop.MODEL(数据交互层).

    3.重复第二步,依次建出DLL层,BAL层. 比如:BookShop.BLL(业务逻辑层),BookShop.DAL(数据访问层).

    4.右击解决方案,选择C#语言 ==> Windows 窗体应用程序. 比如:BookShop.UI(表示层).

    5.依次删除BLL,DAL,MODEL层中的Class1,然后右键 ==> 添加 ==> 新建项 ==> 类,并将其命名.(删除后添加是为了按照一定的命名规则调用,不会使自己误用Class1).

    BLL层以Manager结尾(例:UserManager),DAL层以Service结尾(例:UserService),MODEL层的名与数据库中的表名一致(例:Users).

    6.添加引用,UI层引用 BLL MODEL , BLL层引用 DAL MODEL , DAL层引用 MODEL , 都是向下引用的.

    7.在DAL层新建个SqlHelper类,用于连接数据库使用的.

    8.MODEL层主要负责参数的取值和赋值,参数应该和数据库表中的列对应起来.

    	public string UserId { get; set; }      ==       private string UserId;
    
           							 public string id
    
           							 {
               						     get{ return ID; }
               						     set{ ID = value;}
          							 }

    9.想实现两个类互相调用需要三点:添加引用,声明命名空间,public修饰.

    10.写代码首先从DAL层,BLL层,UI层依次写入.(建议)

    11.一些ADO.NET对象介绍

    	Connection : 用于连接数据库命令.
    
    	Command :  执行针对数据库的SQL命令.
    
    	ExecuteScalar() : 返回第一行第一列的值(object类型).
    
    	ExecuteNonQuery() : 返回执行命令后受到影响的行数(int类型).
    
    	ExecuteReader() : 返回结果集的SQL语句、存储过程,并存放在DataReader类型的对象.
    
    	DataReader :  不能写入,并且只能从头至尾往下读,逐行读取的特性.
    		
    		     SqlDataReader reader = cmd.ExecuteReader();
    
    		     while(reader.Read()) ==>所有的数据放到reader里
    
    		     {
    
    			  listBox1.Items.Add(reader.GetValue(0));
    
    		     }
    
    	DataAdapter :  直接显示表格可以考虑使用!
    
    		      DataSet ds = new DataSet();
    
                         DataTable dt = new DataTable();
    
    		     SqlDataAdapter adpt = new SqlDataAdapter(cmd);
    
                         adpt.Fill(ds);
    
                   	     dt = ds.Tables[0];
    
    	DataSet : 表的集合.
    
    		 DataSet ds = new DataSet();
    
    	DataTable : 单个表.
    
    		 DataTable dt = ds.Tables[0];  ==>取DataSet中的第一个表;
    
    	DataRow : 取单行.
    
    		 DataRow dr = dt.Rows[0];   ==> 取dt表中的第一行记录;
    
    	SqlParameter : 可理解为是个数组,数组的元素起占位符作用.
    
    		 string sql = "select * from users where loginId=@loginId and LoginPwd=@pass";
    
                     SqlParameter[] pars = new SqlParameter[2];	==> 定义两个数组长度
         
    	         pars[0] = new SqlParameter("@loginId", loginId);	==> 第一个元素
              
    	         pars[1] = new SqlParameter("@pass", password);
               	
    		 DataTable dt= SqlHelper.ExecuteDataTable(sql, CommandType.Text, pars);	==>  把参数传到SqlHelper类ExecuteDataTable的方法
  • 相关阅读:
    error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 E:OCX
    JQUERY解析XML IE8的兼容问题
    IE11下,IIS7.5不自动生成__doPostBack事件
    IE11无法支持Forms认证,,,也就是无法保存COOKIE
    IIS7.5真变态,服务器时间格式导致不生成WebResource.axd
    django ajax MTV与MVC 多对多创建方式
    django F与Q查询 事务 only与defer
    模型层
    模板层(模板语法)
    django 路由层 伪静态网页 虚拟环境 视图层
  • 原文地址:https://www.cnblogs.com/swjian/p/6362495.html
Copyright © 2020-2023  润新知