ASP.NET 三层架构实现与数据库的连接验证登录

1、打开visual stdio—>新建项目—>Web—>ASP.NET web应用程序—>选择EmptyASP.NET 三层架构实现与数据库的连接验证登录_第1张图片ASP.NET 三层架构实现与数据库的连接验证登录_第2张图片
2、建好类库,右键选择解决方案“你的项目名”—>添加—>新建项目—>visual C#—>类库—>建立DAL类库(数据访问层)、BLL类库(业务逻辑层)ASP.NET 三层架构实现与数据库的连接验证登录_第3张图片ASP.NET 三层架构实现与数据库的连接验证登录_第4张图片ASP.NET 三层架构实现与数据库的连接验证登录_第5张图片
3、为了更规范使用,建立文件夹分别放入对应的文件夹里面。右键选择添加—>文件夹ASP.NET 三层架构实现与数据库的连接验证登录_第6张图片
4、添加引用,也是比较重要的一步(用户显示层可以引用业务逻辑层和数据访问层勾选DAL\BLL,业务逻辑层引用数据访问层勾选DAL,数据访问层则不添加引用)
ASP.NET 三层架构实现与数据库的连接验证登录_第7张图片
5、做一个简单的登录验证,右键选择用户显示层下“你的项目” —>添加—>类—>选择web—>web窗体
ASP.NET 三层架构实现与数据库的连接验证登录_第8张图片
ASP.NET 三层架构实现与数据库的连接验证登录_第9张图片
6、编写DAL连接数据库,双击数据访问层下的.cs文件

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;//导包

namespace DAL
{
    public class testDAL
    {
        public bool yanZheng(string _userName , string _userPwd) { 
            //获取连接
            using(SqlConnection conn = new SqlConnection("server=.;uid=sa;pwd=123456;database=testDB")){
                //打开连接
                conn.Open();
                //SQL语句参数化,为了防止注入
                string sql = "select 1 from userInfo where userName=@userName and userPwd=@userPwd";
                //执行SQL语句
                using(SqlCommand cmd = new SqlCommand(sql,conn)){
                    cmd.Parameters.Add(new SqlParameter("userName",_userName));
                    cmd.Parameters.Add(new SqlParameter("userPwd",_userPwd));
                    SqlDataReader reader = cmd.ExecuteReader();
                    if(reader.Read())
                        return true;
                    return false;
                }
            }
        }
    }
}

7、编写BLL下的.cs文件,引用DAL中.cs里面的方法

using DAL;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BLL
{
    public class testBLL
    {
        public bool Bll_yanZheng(string _userName,string userPwd) {
            //引用DAL里的方法,先实例化一个它的对象
            testDAL tdl = new testDAL();
            return tdl.yanZheng(_userName, userPwd);
        }
    }
}

8、在显示层窗体后台获取用户输入的数据

using BLL;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace 三层架构
{
    public partial class index : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if(Page.IsPostBack){
                //获取用户名和密码
                string userName = Request["userName"];
                string userPwd = Request["userPwd"];
                //引用BLL里的BLL_yanZheng()方法,实例化对象
                testBLL tbl = new testBLL();
                //根据返回值类型判断登录是否成功
                Boolean result = tbl.Bll_yanZheng(userName, userPwd);
                if (result)
                {
                    //成功跳转
                    Response.Redirect("result.aspx");
                }
                else {
                    Response.Write("账号或密码错误!");
                }
            }
        }
    }
}

9、写一个数据库,与DAL中连接数据库的名称一致


create database testDB
go

use testDB
go

create table userInfo
(
	uId int primary key identity,
	userName varchar(50) not null,
	userPwd varchar(20)
)
go

insert userInfo values('老王','123456')

10、测试(名字为老王、密码123456)
ASP.NET 三层架构实现与数据库的连接验证登录_第10张图片
ASP.NET 三层架构实现与数据库的连接验证登录_第11张图片ASP.NET 三层架构实现与数据库的连接验证登录_第12张图片
输入老王、123456
ASP.NET 三层架构实现与数据库的连接验证登录_第13张图片
ASP.NET 三层架构实现与数据库的连接验证登录_第14张图片
注:主要是数据库连接这一块得细心,一不小心就会出错。其次就是逻辑,用户显示层可以引用DAL(数据访问层)和BLL(业务逻辑层),BLL(业务逻辑层)引用DAL(数据访问层)。文章中有几处方法的调用,起到了很重要的作用。
逻辑(获取用户数据,调用BLL中BLL_yanZheng(),这时候BLL又调用DAL中yanZheng()方法,最后再根据返回值判断数据库中是否存在该用户!)
感谢阅读,入坑不久,大神勿喷!

你可能感兴趣的:(练手,.NET)