VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > c#编程 >
  • C#教程之基于C#实现的三层架构实例

本文所述为基于C#实现的三层架构。对于三层的概念查相信大家并不陌生,这里举一个关于三层的简单实例,真正看一下它是如何具体实现的.

我们先来一起看看实体类-Model
实质:实体类就是在完成数据库与实体类对应的功能,一个类是一张表,一个属性是一个字段!

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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层

?
1
<add name="ConnectionString" connectionString="Data Source=localhost;Initial Catalog=tester;User ID=sa;Password=123456" providerName="System.Data.SqlClient" />

三层中的最底层-数据访问层(DAL)  这一层要引用实体类和对Configuration的引用
实质:就是对数据库中的内容的增,删,改,查

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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()>0)
       {
         return true;
       }
       else
       {
         return false;
       }
     }
  }
}

三层中的桥梁-业务逻辑层BLL  这一层需要引用实体类和数据访问层
实质:负责处理U层的问题(本例子主要是对数据层的操作)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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  这一层要引用实体类和业务逻辑层
实质:具体解决做什么的问题

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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层就是实实在在做这件事情的操作。


相关教程