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

  

  

  

posted @ 2020-03-26 10:51  包子789654  阅读(586)  评论(0编辑  收藏  举报