WinFrom验证登录问题
用户登陆的时候有问题,如果密码错误登陆窗口就直接关闭了!数据库验证没有问题,感觉是逻辑出问题了!请大家帮我找找错误!Program.cs文件内容如下:
FrmLogin login = new FrmLogin();
FrmMain frmmain;
if (login.CheckLogin())
{
Application.Run(frmmain = new FrmMain());
login.Close();
}
frmlogin.cs文件内容如下:
--------------------编程问答-------------------- 你这个 login.Close();
public bool CheckLogin()
{
this.ShowDialog();
return m_bLogin;
}
private void cmdOk_Click(object sender, EventArgs e)
{
m_bLogin=UserAndPwd();
if (m_bLogin) //如果登录成功,关闭登录窗口,打开主画面
{
this.Close();
}
else
{
MessageBox.Show("请检测用户名和密码是否正确!");
}
}
public bool UserAndPwd()//验证用户名和密码
{
bool bRet = false;
//查询语句
string sql = "select count(*) from Users where UserAccount='" + userTxt.Text + "' and UserPwd='" + PassTxt.Text + "'";
//验证用户返回是否成功
bRet = SqlWork.validate(sql);
//MessageBox.Show(bRet.ToString());
//获取当前用户名
UserName = userTxt.Text;
//返回是否验证成功启动主界面
return bRet;
}
你这个页面都关闭了,他当然关闭啊....赶紧给分..别墨迹.. --------------------编程问答--------------------
--------------------编程问答-------------------- 参考一下:
//建议做法:Program.cs里就启动LoginForm就行,开启主窗体放到登陆窗体确定事件中做
//Program.cs
Application.Run(new FrmLogin();
//LoginForm.cs
private void cmdOk_Click(object sender, EventArgs e)
{
m_bLogin=UserAndPwd();
if (m_bLogin) //如果登录成功,关闭登录窗口,打开主画面
{
FrmMain frmmain = new FrmMain();
this.Close();
}
else
{
MessageBox.Show("请检测用户名和密码是否正确!");
}
}
http://www.cnblogs.com/tgyun/archive/2008/12/22/1359573.html
--------------------编程问答-------------------- public static bool LoginFlag = false;
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Login login = new Login();
login.ShowDialog();
if (LoginFlag == true)
{
Application.Run(new MainFrm());
}
else
{
Application.Exit();
}
}
LoginFrm中,Button中验证成功后:
Program.LoginFlag = true;
this.Close(); --------------------编程问答-------------------- FrmLogin login = new FrmLogin();
FrmMain frmmain;
if (login.CheckLogin())
{
Application.Run(frmmain = new FrmMain());
login.Close();
}
这儿的LOGIN.CLOSE()可以不要了 --------------------编程问答-------------------- login.Close();改成Login.hide();让Login隐藏,不要关闭! --------------------编程问答-------------------- login.close()当然窗口会关闭啦 --------------------编程问答-------------------- 感谢各位的回答,但是问题仍然没有解决!上面的方法都试了一遍还没解决!问题再重声一遍,用户验证的时候,如果用户信息正确,frmlogon窗口关闭,frmmain窗口正常打开!错误在,如果用户信息有误,程序验证提示错误后就立即退出了,而不是我希望的能继续验证用户信息!希望大家再提出方案!能解决问题的决不墨迹立即给分,不认真回答的就别想了! --------------------编程问答-------------------- 我想应该是逻辑的问题,你像我这种思路试试!
pricate bool bRet = false;
public bool CheckLogin()
{
this.ShowDialog();
return m_bLogin;
}
private void cmdOk_Click(object sender, EventArgs e)
{
if (bRet==true) //如果登录成功,关闭登录窗口,打开主画面
{
this.Close();
}
else
{
MessageBox.Show("请检测用户名和密码是否正确!");
}
}
public bool UserAndPwd()//验证用户名和密码
{
bool bRet1=false;
//查询语句
string sql = "select count(*) from Users where UserAccount='" + userTxt.Text + "' and UserPwd='" + PassTxt.Text + "'";
//验证用户返回是否成功
bRet1 = SqlWork.validate(sql);
if(bRet1==true)
{
bRet=true;
}
else
{
bRet=false;
}
//MessageBox.Show(bRet.ToString());
//获取当前用户名
UserName = userTxt.Text;
//返回是否验证成功启动主界面
return bRet;
}
--------------------编程问答-------------------- 不一定是逻辑问题!楼上的兄弟,我感觉
if(bRet1==true)
{
bRet=true;
}
else
{
bRet=false;
}
这段没什么必要,直接返回bRet1就行了!
补充一点,我在建项目的时候,窗口的顺序是先frmmain再frmlogin!
我重新建了个工程,frm1是登录窗口,frm2是mian窗口,用自己的代码测试功能正常。
请问是不是有什么东西我没有配置好?
补充:.NET技术 , C#