C# 上位机开发利用数据库实现用户登录

最近在研究上位机开发中如何利用数据库开发用户登录界面,有一些心得,总结如下:
流程

1.创建数据库UI界面,UI界面包含:登录名,登录密码,确定按钮,如下图.

C# 上位机开发利用数据库实现用户登录

2.对数据是否符合要求进行验证,代码如下
Excel讲师Excel表格制作,数据处理,办公技巧发布与技术分享,办公快别人一步!公众号该公众号已被封禁 if (textBox_admin.Text.Trim().Length == 0)            {                MessageBox.Show("用户名不能为空!", "登录提示");                textBox_admin.Focus();                return;            }            if (textBox_password.Text.Trim().Length == 0)            {                MessageBox.Show("密码不能为空!", "登录提示");                textBox_password.Focus();                return;            }            if (!IsInteger(this.textBox_password.Text.Trim()))            {                MessageBox.Show("登录密码必须是整数!", "提示信息");                this.textBox_password.Focus();                return;            }3.将用户输入的登录名和密码封装到对象内,代码如下:Admin objAdmin = new Admin()            {Badgenumber = Convert.ToInt32(textBox_admin.Text.Trim()),LoginPwd = Convert.ToInt32(this.textBox_password.Text.Trim())            };4.和后台交互,判断信息是否正确,代码如下:try            {                Program.currentAdmin = mSysAdminServer.AdminLogin(objAdmin, connstring);                if (Program.currentAdmin != null)                {                    Program.currentAdmin = objAdmin;                    this.DialogResult = DialogResult.OK;                    FormMain formMain = new FormMain();                    formMain.ShowDialog();                    this.Close();                }                else                {                    MessageBox.Show("登录账号或密码有误!", "登录提示");                }            }            catch (Exception ex)            {                MessageBox.Show("数据访问出现异常,登录失败!具体原因" + ex.Message);            }
AdminService

1.创建AdminServer类,此类主要用于访问数据库,将UI界面数据和数据库内数据对比,代码如下:

 public class SysAdminService    {        /// <summary>        /// 根据登录账号和密码登录        /// </summary>        /// <param name="objAdmin">封装了登录账号和密码的管理员对象</param>        /// <param name="constring">数据库登录账号和密码的登录语句</param>        /// <returns>返回包含管理员信息的对象</returns>        public Admin AdminLogin(Admin objAdmin, string constring)        {            //组合SQL语句            string sql = "select AdminName from Admin where Badgenumber={0} and LoginPwd='{1}'";            sql = string.Format(sql, objAdmin.Badgenumber, objAdmin.LoginPwd);            try            {                //创建数据库中查询的类                SqlDataReader objReader = SqlTool.GetReader(constring, sql);                //判断登录成功                if (objReader.Read())                {                    //将用户名赋值给管理员的Name属性                    objAdmin.AdminName = objReader["AdminName"].ToString();                       objReader.Close();                }                else //判断登录不成功                {                    objAdmin = null;                }            }            catch (Exception ex)            {                throw ex;            }            return objAdmin;        }    }
Program类

在Program类中创建静态全局变量,用于主界面的用户提示,代码如下:

/// <summary>        /// 应用程序的主入口点。        /// </summary>        [STAThread]        static void Main()        {            Application.EnableVisualStyles();            Application.SetCompatibleTextRenderingDefault(false);            //实例化FormStart窗体            FormStart formStart = new FormStart();            DialogResult result = formStart.ShowDialog();            if (result == DialogResult.OK)            {                //运行登录界面                Application.Run(new FormAdminLogin());            }            else            {                //退出程序                Application.Exit();            }        }        public static Admin currentAdmin = null;
主窗体效果

C# 上位机开发利用数据库实现用户登录