对于三层的概念查也查了,看也看了,下面是我找的一个关于三层的简单实例,真正看一下它是如何具体实现的.

我们先来一起看看
实体类-Model
实质:实体类就是在完成数据库与实体类对应的功能,一个类是一张表,一个属性是一个字段!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace model
{
public class User
{
public User() { }
private string _name;
public string name
{
set { _name = value; }
get { return _name; }
} }
}
再来说明一下,这个实例应用了配置文件来访问数据库,当然我们在做的时候可以使用SqlHelper,也可以将连接数据库的这些代码直接放在D层
<add name="ConnectionString" connectionString="Data Source=localhost;Initial Catalog=tester;User ID=sa;Password=123456" providerName="System.Data.SqlClient" />  

 数据访问层(DAL)

三层中的最底层-数据访问层(DAL)  这一层要引用实体类和对Configuration的引用
实质:就是对数据库中的内容的增,删,改,查
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using model;
using System.Data;
using System.Configuration;
using System.Data.SqlClient; namespace DAL
{
public class UserDB
{
public bool User_add(model.User model)
{
string setting = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
SqlConnection myconn=new SqlConnection(setting);
myconn.Open();
SqlCommand cmd=new SqlCommand("insert into dbo.[user]([name]) values(@name)",myconn);
cmd.Parameters.AddWithValue("@name", model.name);
if (cmd.ExecuteNonQuery()>)
{
return true;
}
else
{
return false;
}
}
}
}

 业务逻辑层BLL 

三层中的桥梁-业务逻辑层BLL  这一层需要引用实体类和数据访问层
实质:负责处理U层的问题(本例子主要是对数据层的操作)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DAL; namespace BLL
{
public class userBLL
{
DAL.UserDB db = new UserDB();
public bool addUser(model.User model)
{
return db.User_add(model);
}
}
}

 表现层UI 

三层中的顶层-表现层UI  这一层要引用实体类和业务逻辑层
实质:具体解决做什么的问题
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BLL;
using model; namespace 登陆
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
model.User thisUser = new User();
thisUser.name = TB_username.Text.ToString();
BLL.userBLL uB = new userBLL();
if (uB.addUser (thisUser))
{
MessageBox.Show ("true");
}
else
{
MessageBox.Show ("false");
}
}
}
}
三层之间的关系:
       
 
解释:
     上述代码中DAL主要是对数据库中的内容的操作,在这里就是向数据库中添加用户。BLL则主要是调用DAL层的操作,返回DAL层添加用户的结果(true或者false)。这样也就是在客户端与数据库中加了一个中间层,使得两层的依赖性减小。UI层则主要完成响应用户的需求,去调用BLL层实现的adduser方法,DAL层就是实实在在做这件事情的操作。

C#三层架构实例的更多相关文章

  1. JavaWeb学习之三层架构实例(三)

    引言 通过上一篇博客JavaWeb学习之三层架构实例(二)我们基本上已经实现了对学生信息列表的增删改查操作(UI除外),但是不难看出,代码冗余度太高了,尤其是StudentDao这个类,其中的增删改查 ...

  2. JavaWeb学习之三层架构实例(二)

    引言 这个实例是上一个实例JavaWeb学习 三层架构实例(一)的加强版,实现的是在前端对数据库中student表的 增.删.改.查 操作.关于三层组成云云,这里就不再叙述. 实例 效果图 先来看一下 ...

  3. java:Session(概述,三层架构实例(实现接口封装JDBC),Session实现简单购物车实例)

    1.Session概述: Session:在计算机中,尤其是在网络应用中,称为“会话控制”.Session 对象存储特定用户会话所需的属性及配置信息.这样,当用户在应用程序的 Web 页之间跳转时,存 ...

  4. C# 使用三层架构实例演示-winForm 窗体登录功能

    ---------------------------------------------------------------------------------------------------华 ...

  5. 三层架构实例 VB.NET版

    三层实例 首先发现感慨,对于三成这块,用到都是一些面向对象的特征,尤其是对象的实例化.如果你不是很注意的话,那么,你就会一头雾水,就像我一样,慢慢的雾里看花,最后也是走出来的,不过用的事件是相当的. ...

  6. SSH框架整合实现Java三层架构实例(一)

    HTML前台发送请求代码: <tr> <td>选择收派时间</td> <td> <input type="text" name ...

  7. c#三层架构登陆实例

    很早之前,就听说过三层结构了.当时只知道 三层结构 是把 系统的 界面  跟 数据库操作等不相关的程序分别开来.原来这么简单的实现,确实传说中的 三层结构啊. 首先,先来看一下是哪三层.表示层(UI, ...

  8. [转]C#三层架构登陆实例

    很早之前,就听说过三层结构了.当时只知道 三层结构 是把 系统的 界面  跟 数据库操作等不相关的程序分别开来.原来这么简单的实现,确实传说中的 三层结构啊. 首先,先来看一下是哪三层.表示层(UI, ...

  9. asp.net三层架构 及其中使用泛型获取实体数据介绍

    asp.net中使用泛型获取实体数据可以发挥更高的效率,代码简洁方便,本例采用三层架构.首先在model层中定义StuInfo实体,然后在 DAL层的SQLHelper数据操作类中定义list< ...

随机推荐

  1. include,include_once,require,require_once的区别

    1.include() include(/path/to/filename) include()语句将在其被调用的位置处包含一个文件.包含一个文件与在该语句所在位置复制制定文件的数据具有相同内容的效果 ...

  2. Educational Codeforces Round 23D

    给n个数求每个子区间的价值,区间的价值是最大值-最小值 套路题= =,分别算最大值和最小值的贡献,用并查集维护,把相邻点连一条边,然后sort,求最大是按边价值(两个点的最大价值)小的排,求最小是按最 ...

  3. hdu1845

    题解: 只要输出n/2即可 代码: #include<cstdio> #include<cmath> #include<cstring> #include<a ...

  4. Puzzle Game HihoCoder - 1634

    题目链接:https://cn.vjudge.net/problem/HihoCoder-1634 题目意思:可以让矩阵里的某一个数变成p,或者不修改.求最大子矩阵最小,输出最小值. 思路:请看下图 ...

  5. 一个css3 DNA 效果

    这个效果就是 不断沿 Y 轴旋转 <div id="container"></div> <style> body{ background:bla ...

  6. C#调用EasyPusher推送到EasyDarwin流媒体服务器直播方案及示例代码整理

    博客一:转自:http://blog.csdn.net/u011039529/article/details/70832857 大家好,本人刚毕业程序猿一枚.受人所托,第一次写博客,如有错误之处敬请谅 ...

  7. Cloudera Manager (centos)安装详细介绍

    文章全部来自:Cloudera Manager (centos)安装详细介绍http://www.aboutyun.com/thread-9190-1-1.html(出处: about云开发) 这里已 ...

  8. Java程序员必须掌握的知识

    1.语法:Java程序员必须比较熟悉语法,在写代码的时候IDE的编辑器对某一行报错应该能够根据报错信息 知道是什么样的语法错误并且知道任何修正. 2.命令:必须熟悉JDK带的一些常用命令及其常用选项, ...

  9. 【spring源码学习】spring的事件发布监听机制源码解析

    [一]相关源代码类 (1)spring的事件发布监听机制的核心管理类:org.springframework.context.event.SimpleApplicationEventMulticast ...

  10. PHP使用curl请求https站点的常见错误及解决方案

    使用curl请求http站点和https站点最大的不同就是https站点有证书验证这一环节,如果证书验证不通过则无法发起请求,不管是请求什么类型的站点遇到问题时先把错误码打印出来看一下,打印错误码的代 ...