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

浙公网安备 33010602011771号