15、WPF_MVVM_(2)检验是否为空

该博客介绍了使用三层架构(DAL、BLL、UI)进行登录验证的实现过程。在DAL层,创建了LoginDAL类,用于从数据库中查询用户名和密码;BLL层的LoginBLL类调用DAL层的方法进行业务逻辑处理;在验证层,定义了NotEmptyCheck、UserNameExists和PasswordExists类来检查输入的非空性和用户名、密码是否存在。通过这种方式,实现了高效且健壮的登录验证功能。
摘要由CSDN通过智能技术生成

三层架构:DAL 、BLL 、UI
UI 表示层(界面层)
BLL 业务逻辑
DAL 数据访问层
第一部分:访问数据库
第二部分:检验是否为空
第三部分:检验用户名和密码,实现登录效果
1、在“Models”文件夹,创建数据访问层LoginDAL.cs,对Login.cs表单的调用
LoginDAL.cs代码如下:

using System.Linq;

namespace StudentMgrDemo.Models
{
    public class LoginDAL
    {
        LoginEntity loginEntity = new LoginEntity();
        public int GetLogin(string userName,string password)
        {
            var logins = from tblogin in loginEntity.Login
                         where tblogin.UserName == userName && tblogin.Password == password
                         select tblogin;
            return logins.Count();
        }
        //获取-登录 用户名
        public int GetLoginUserName(string userName)
        {
            var logins = (from tblogin in myModel.Logins
                            where tblogin.UserName == userName
                            select tblogin).ToList();
            return logins.Count();
        }

        //获取-登录 密码
        public int GetLoginPassword(string password)
        {
            var logins = (from tblogin in myModel.Logins
                          where tblogin.Password == password
                          select tblogin);
            return logins.Count();
        }
    }
}

2、LoginBLL.cs,代码如下:

namespace StudentMgrDemo.Models
{
    public class LoginBLL
    {
        LoginDAL loginDal = new LoginDAL();
        //查询所有-登录用户
        public int GetLogin(string userName, string password)
        {
            return loginDal.GetLogin(userName, password);
        }
        //获取-登录 用户名
        public int GetLoginUserName(string userName)
        {
            return loginDal.GetLoginUserName(userName);
        }
        //获取-登录 密码
        public int GetLoginPassword(string password)
        {
            return loginDal.GetLoginPassword(password);
        }
    }
}

3、在“Models”文件夹,创建"LoginValidata.cs",代码如下:

using System.ComponentModel.DataAnnotations;

namespace StudentMgrDemo.Models
{
    //判断是否为空
    public class NotEmptyCheck : ValidationAttribute
    {
        public override bool IsValid(object value)
        {
            //判断名称是否为空
            var name = value as string;
            if (string.IsNullOrEmpty(name))
            {
                return false;
            }
            return true;
        }

        //提示
        public override string FormatErrorMessage(string name)
        {
            return "不能为空!";
        }
    }
    //检查用户名是否存在
    public class UserNameExists : ValidationAttribute
    {
        public override bool IsValid(object value)
        {
            var name = value as string;
            //判断是否有用户名
            LoginBLL loginBLL = new LoginBLL();
            int i = loginBLL.GetLoginUserName(name);
            //当大于0,有用户名为true,否则为false
            if (i > 0)
            {
                return true;
            }
            return false;
        }
        public override string FormatErrorMessage(string name)
        {
            return "用户名不存在!";
        }
    }
    //检查密码是否存在
    public class PasswordExists : ValidationAttribute
    {
        public override bool IsValid(object value)
        {
            var password=value as string;
            //判断是否有密码
            LoginBLL loginBLL = new LoginBLL();
            int i = loginBLL.GetLoginPassword(password);
            //当大于0,有密码为true,否则为false
            if (i > 0)
            {
                return true;
            }
            return false;
        }
        public override string FormatErrorMessage(string name)
        {
            return "密码不存在!";
        }
    }

    
}

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值