1.CaterUI层
using CaterBll;
using CaterModel;
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;
namespace CaterUI
{
public partial class FormLogin : Form
{
public FormLogin()
{
InitializeComponent();
}
private void btnClose_Click(object sender, EventArgs e)
{
//关闭当前窗体
this.Close();
}
private void btnLogin_Click(object sender, EventArgs e)
{
//获取用户输入的信息
string name = txtName.Text;
string pwd = txtPwd.Text;
//调用业务逻辑层查询用户名密码是否正确
ManagerInfoBll mibll = new ManagerInfoBll();
LoginState loginState = mibll.Login(name, pwd);
switch (loginState)
{
//登录成功就打开一个新的窗体
case LoginState.OK:
FormMain fm = new FormMain();
//显示登录成功后的主窗体
fm.Show();
//将当前的窗体隐藏起来(因为这个窗体是一个主窗体, 我们不能直接关闭掉)
this.Hide();
break;
case LoginState.NameError:
MessageBox.Show("用户名错误", "错误信息", MessageBoxButtons.OK, MessageBoxIcon.Error);
break;
case LoginState.PwdError:
MessageBox.Show("密码错误", "错误信息", MessageBoxButtons.OK, MessageBoxIcon.Error);
break;
}
}
private void FormLogin_Load(object sender, EventArgs e)
{
}
}
}
2.CaterBll层
// 调用Dal层, 实现用户的登录
///
/// 返回一个枚举类型
///
///
///
///
public LoginState Login(string name, string pwd)
{
//根据用户名进行对象的查询
ManagerInfo mi = miDal.getManagerByName(name);
if (mi == null)
{
//用户名错误
return LoginState.NameError;
}
else
{
//用户名正确
//由于这里查询出来的是一个MD5加密后的结果, 因此我需要提前把我的这个密码进行MD5加密后再比较是否相同
string md5_pwd = Md5Helper.EncryptString(pwd);
//两个都加密了的密码进行比较
if (mi.MPwd.Equals(md5_pwd))
{
//密码正确
return LoginState.OK;
}
else
{
//密码错误
return LoginState.PwdError;
}
}
}
}
}
3.CaterDal层
///
/// 根据用户名查找对象
///
///
///
public ManagerInfo getManagerByName(string name)
{
//定义一个对象
ManagerInfo mi = null;
//构造SQL语句
string sql = "select * from ManagerInfo where mname = @name";
SQLiteParameter p = new SQLiteParameter("@name", name);
//执行查询, 得到结果
DataTable dt = SqliteHelper.GetDataTable(sql, p);
// 由于用户名是唯一的,因此如果查到了就是唯一的一条记录
if (dt.Rows.Count > 0)
{
//该用户存在
mi = new ManagerInfo()
{
//Int.parse(string str) 该函数参数接收的是一个字符串
//Convert.ToInt32(Object obj) 该函数接收的是一个对象类型
MId = Convert.ToInt32(dt.Rows),
MName = name,
MPwd = dt.Rows.ToString(),
MType = Convert.ToInt32(dt.Rows)
};
}
else
{
//用户不存在
}
return mi;
}
评论
填写昵称与邮箱即可评论,无需登录。