三层架构: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 "密码不存在!";
}
}
}