三层架构实例
一、新建立一个三层架构体系结构解决方案
原文://http://blog.csdn.net/xjc1278003262/article/details/8867177
新建一个空白解决方案。然后:
1.“添加”-“新建项目”-“Visual C#”-“类库”-“称:LoginBLL”-“业务逻辑”(业务层,下简称B层)如下图:
2.“添加”-“新建项目”-“Visual C#”-“类库”-“名称:LoginDAL”-“数据访问”(数据层,下简称D层)如下图:
3.“添加”-“新建项目”-“Visual C#”-“类库”-“名称:LoginUI”(界面层,下简称U层)如下图:
U层的界面效果图:如下图
4. “添加”-“新建项目”-“Visual C#”-“类库”-“名称:LoginModel”(以下实体层)如下图:
三层建立后的效果图,如下图:
二、引用(关键步骤)
右键点“解决方案”-“添加引用”,设置U依引用D、B,B引用于D。对U添加引用D、B,对B添加引用D。如下图:
引用步骤一:
引用步骤二:
到此为止,一个登录的三层架构的建立起来了。
三、各层实现代码如下
B层代码
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using Login.BLL;
- using Login.DAL;
- using Login.Model;
- namespace Login.BLL
- {
- public class LoginManager
- {
- public UserInfo UserLogin(string userName, string password)
- {
- UserDAO uDao = new UserDAO(); //实例化D层的类
- UserInfo user = uDao.SelectUser(userName, password); //将user信息传递给D层
- if (user == null) //判断user信息
- {
- throw new Exception("登陆失败");
- }
- else
- {
- return user;
- }
- }
- }
- }
D层代码
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using Login.Model;
- using System.Data.SqlClient;
- using System.Data;
- namespace Login.DAL
- {
- public class UserDAO
- {
- //连接数据库
- public static string ConnString = @"Server=XJC-PC; Database=chargeStudent; User ID=sa; Password=123456";
- public UserInfo SelectUser(string userName, string password) //各层都要用到实体类userInfo 通过实体类连接
- {
- using (SqlConnection conn = new SqlConnection(ConnString))
- {
- SqlCommand cmd = conn.CreateCommand(); //数据库连接命令
- cmd.CommandText = @"select * from user_Info where user_Name=@userName AND user_PWD=@password";
- cmd.CommandType = CommandType.Text;
- cmd.Parameters.Add(new SqlParameter("@userName", userName));
- cmd.Parameters.Add(new SqlParameter("@password", password));
- conn.Open();
- SqlDataReader reader = cmd.ExecuteReader(); //读取数据
- UserInfo user = new UserInfo();
- while (reader.Read())
- {
- user.userName = reader.GetString(0);
- user.password = reader.GetString(1);
- }
- return user;
- }
- }
- }
- }
U层代码
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- using System.Data.SqlClient;
- using Login.BLL;
- using Login.Model;
- namespace LoginUI
- {
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- }
- private void btnLogin_Click(object sender, EventArgs e)
- {
- LoginManager mgr = new LoginManager(); //实例化B层的类
- string userName = txtUserName.Text.Trim();
- string Password = txtPassword.Text;
- UserInfo user = mgr.UserLogin(userName, Password); //将user信息传递给B层
- MessageBox.Show("登陆用户:" + userName);
- }
- }
- }
实体层代码
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace Login.Model
- {
- public class UserInfo
- {
- public string userName;
- public string UserName
- {
- get { return userName; }
- set { userName = value; }
- }
- public string password;
- public string PassWord
- {
- get { return password; }
- set { password = value; }
- }
- }
- }
四、运行成功的结果图:如下图
以上是我对“三层实例”的真是实现,如有不妥之处,还请指教。