三层架构实例

三层架构实例

一、新建立一个三层架构体系结构解决方案

新建一个空白解决方案。然后:    

1.“添加”-“新建项目”-“Visual C#”-“类库”-“称:LoginBLL”-“业务逻辑”(业务层,下简称B层)如下图:

三层架构实例_第1张图片


 2.“添加”-“新建项目”-“Visual C#”-“类库”-“名称:LoginDAL”-“数据访问”(数据层,下简称D层)如下图:

三层架构实例_第2张图片


3.“添加”-“新建项目”-“Visual C#”-“类库”-“名称:LoginUI”(界面层,下简称U层)如下图:

三层架构实例_第3张图片


U层的界面效果图:如下图

三层架构实例_第4张图片

 4. “添加”-“新建项目”-“Visual C#”-“类库”-“名称:LoginModel”(以下实体层)如下图:

三层架构实例_第5张图片

三层建立后的效果图,如下图:

三层架构实例_第6张图片


二、引用(关键步骤)

右键点“解决方案”-“添加引用”,设置U依引用D、B,B引用于D。对U添加引用D、B,对B添加引用D。如下图:

引用步骤一:

三层架构实例_第7张图片

引用步骤二:

三层架构实例_第8张图片


到此为止,一个登录的三层架构的建立起来了。


三、各层实现代码如下

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; }
        }
    }
}

四、运行成功的结果图:如下图

三层架构实例_第9张图片


以上是我对“三层实例”的真是实现,如有不妥之处,还请指教。

你可能感兴趣的:(三层架构实例)