我是笑林新记,分享一下我使用C#的一些用法,希望对大家有帮助!欢迎关注:笑林新记
Visual Studio版本:Enterprise 2015
.NET框架:.NET Framework 4 Client Profile
数据库:SQL server
因为原项目数据库文件缺少,而且源码也没有注释,所以我新开了一个gitee项目,文末有下载地址。
01
系统登录
那么我们来看看登录功能的代码。
List<AdminsMDL> list = AdminsBLL.GetLogin(username);if (list.Count > 0){ if (list[0].LoginType == 1) { //登录成功 admins.UserCompellation = list[0].UserCompellation; admins.name = list[0].UserName; admins.id = list[0].headID; admins.UserId = list[0].userid; AdminsMDL a = new AdminsMDL(); a.LoginType = 2; a.UserName = username; AdminsBLL.logintype(a); FrmMain f = new FrmMain(); f.Show(); this.Hide(); } else if (list[0].LoginType == 2) { new Warning("请勿重复登录", 图标.Erro).Show(); } } else { new Warning("密码错误", 图标.Erro).Show(); }}在第一节中提了,这个地方只是判断了用户名,没有对密码进行检查,只要用户名正确,就可以登录,我们可以进行修改,修改后
List<AdminsMDL> list = AdminsBLL.GetLogin(username);if (list.Count > 0){ if (list[0].UserPWD == userpwd) { if (list[0].LoginType == 1) { //登录成功,记录登录信息 admins.UserCompellation = list[0].UserCompellation;//真实姓名 admins.name = list[0].UserName;//登录账号 admins.id = list[0].headID; admins.UserId = list[0].userid;//账号ID //回写登录状态 AdminsMDL a = new AdminsMDL(); a.LoginType = 2;//登录状态,1:未登录;2:已登录 a.UserName = username; AdminsBLL.logintype(a); //跳转主页面。隐藏登录页 FrmMain f = new FrmMain(); f.Show(); this.Hide(); } else if (list[0].LoginType == 2) { new Warning("请勿重复登录", 图标.Erro).Show(); } } else { new Warning("密码不存在!", 图标.Erro).Show(); }}else{ new Warning("用户名不存在!", 图标.Erro).Show();}02
密码修改
登录页面还有一个修改密码的功能,修改密码是打开一个新页面,新页面也是无边框的页面,第二节中已经介绍了页面无边框的设置。这里说一下打开新页面的方式,也就是常说的弹窗,弹窗方式有两种一种是模态,一种是非模态。
FrmEditPwd f = new FrmEditPwd();f.Show();Show()是非模态,ShowDialog()是模态,简单来说非模态的意思是原来的页面和新弹窗出来的页面都可以操作,二模态则是只能操作弹窗页面,弹窗页面关闭前,原来的页面不可操作。
密码修改页面,需要填写账号,原密码,新密码,这里用账号和原密码去查询。他这里用了查询后直接返回object对象,并转成字符串,这里会有一个问题,如果用户名和密码没有找到数据的话,那么这个对象就是null,这个时候转成string的话,会报错。
public static string selectpwd(AdminsMDL a){string sql = "select usercompellation from admins where username=@username and userpwd=@userpwd";List<SqlParameter> list = new List<SqlParameter>();list.Add(new SqlParameter("@username", a.UserName));list.Add(new SqlParameter("@userpwd", a.UserPWD));return DBhelper.MyExecuteScalar(sql, list.ToArray()).ToString();}所以需要先判断一下,应该返回bool值更合适。可更改为:
object val = DBhelper.MyExecuteScalar(sql, list.ToArray());return val == null ? "" : val.ToString();以上是判断用户名和密码是否正确,然后执行修改。int b = AdminsBLL.updatepwd(ad, am);if (b > 0){new Warning("密码修改成功", 图标.Yes).Show();}ad是账号和新密码,am是原来的密码,这里都是用模型的方式传值,这里内容比较少,也可以直接用用几个参数就行。