跳到正文

【C#进阶】实现用户的登录操作

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; }

评论

填写昵称与邮箱即可评论,无需登录。

推荐阅读