最近在研究上位机开发中如何利用数据库开发用户登录界面,有一些心得,总结如下:
流程
1.创建数据库UI界面,UI界面包含:登录名,登录密码,确定按钮,如下图
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;
主窗体效果
技术群:添加小编微信并备注进群
小编微信:mm1552923
公众号:dotNet编程大全