winform登录窗体的实现
1,新建一个实体类,用来储存 用户信息的类
namespace MS_Entity { /// <summary> /// 登录用户类 /// </summary> public class SysAdmins { //登录ID public int LoginId { get; set; } //登录名称 public string LoginName { get; set; } //登录密码 public string LoginPwd { get; set; } /// <summary> /// 角色 /// </summary> public int Role { get; set; } } }
2,程序主窗体入口
static class Program { /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); FrmLogin objFrm = new FrmLogin(); DialogResult result= objFrm.ShowDialog();//模式对话框,对话框模式的是有返回值的 if (result == DialogResult.OK)//说明登录成功了 { //登录成功,显示主窗体 FrmMain obj = new FrmMain(); Application.Run(obj); } else { Application.Exit(); } } }
3,登录窗体
private void btn_Login_Click(object sender, EventArgs e) { //判断是否选中匿名登录(不用输入用户名和密码直接登录的) if (this.chk_UsePwd.Checked) { this.DialogResult = DialogResult.OK; //CommonMethods.objAdmins.LoginName = "None"; CommonMethods.objAdmins=new SysAdmins() { LoginName = "None" }; } else { //登录判断 if (this.txt_UserId.Text.Trim().Length == 0) { MessageBox.Show("请填写用户名!", "登录提示"); this.txt_UserId.Focus(); return; } if (!DataValidate.IsInteger(this.txt_UserId.Text.Trim()))//判断用户ID是不是正整数 { MessageBox.Show("用户名必须为正整数!", "登录提示"); this.txt_UserId.Focus(); return; } if (this.txt_Pwd.Text.Trim().Length == 0) { MessageBox.Show("请输入密码!", "登录提示"); this.txt_Pwd.Focus(); return; } //封装对象 SysAdmins objAdmins = new SysAdmins()//初始化对象,设置 id 和 密码 的属性 { LoginId = Convert.ToInt32(this.txt_UserId.Text.Trim()), LoginPwd = this.txt_Pwd.Text.Trim() }; if (AdminLogin(objAdmins) == null)//没查到 { MessageBox.Show("用户名或密码错误!", "登录提示"); } else//查到了 { this.DialogResult = DialogResult.OK; CommonMethods.objAdmins = objAdmins; } } } /// <summary> /// 登录判断方法,根据用户输入的ID和密码来查询数据库 /// </summary> /// <param name="objAdmin">传入一个用户对象类</param> /// <returns>返回的也是一个用户对象类</returns> private SysAdmins AdminLogin(SysAdmins objAdmin) { string sql = "Select LoginName,Role from sysAdmins where LongId={0} and LoginPwd='{1}'"; sql = string.Format(sql, objAdmin.LoginId, objAdmin.LoginPwd); DataSet ds = SQLHelper.GetDataSet(sql);//数据库查询 if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { objAdmin.LoginName = ds.Tables[0].Rows[0]["LoginName"].ToString(); objAdmin.Role = Convert.ToInt32(ds.Tables[0].Rows[0]["Role"]); return objAdmin;//比传入进来的多了两个属性:用户名和属性 } else { return null; } }