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

本文详细介绍了使用ASP.NET实现三层架构的具体步骤,包括项目创建、类库构建、数据库连接及登录验证过程。通过实例演示了如何分离数据访问层、业务逻辑层和用户显示层,以提高代码的可维护性和复用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、打开visual stdio—>新建项目—>Web—>ASP.NET web应用程序—>选择Empty在这里插入图片描述在这里插入图片描述
2、建好类库,右键选择解决方案“你的项目名”—>添加—>新建项目—>visual C#—>类库—>建立DAL类库(数据访问层)、BLL类库(业务逻辑层)在这里插入图片描述在这里插入图片描述效果图如下
3、为了更规范使用,建立文件夹分别放入对应的文件夹里面。右键选择添加—>文件夹在这里插入图片描述
4、添加引用,也是比较重要的一步(用户显示层可以引用业务逻辑层和数据访问层勾选DAL\BLL,业务逻辑层引用数据访问层勾选DAL,数据访问层则不添加引用)
在这里插入图片描述
5、做一个简单的登录验证,右键选择用户显示层下“你的项目” —>添加—>类—>选择web—>web窗体
在这里插入图片描述
在这里插入图片描述
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)
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
输入老王、123456
在这里插入图片描述
在这里插入图片描述
注:主要是数据库连接这一块得细心,一不小心就会出错。其次就是逻辑,用户显示层可以引用DAL(数据访问层)和BLL(业务逻辑层),BLL(业务逻辑层)引用DAL(数据访问层)。文章中有几处方法的调用,起到了很重要的作用。
逻辑(获取用户数据,调用BLL中BLL_yanZheng(),这时候BLL又调用DAL中yanZheng()方法,最后再根据返回值判断数据库中是否存在该用户!)
感谢阅读,入坑不久,大神勿喷!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值