问题描述
用户登陆的时候有问题,如果密码错误登陆窗口就直接关闭了!数据库验证没有问题,感觉是逻辑出问题了!请大家帮我找找错误!Program.cs文件内容如下:FrmLoginlogin=newFrmLogin();FrmMainfrmmain;if(login.CheckLogin()){Application.Run(frmmain=newFrmMain());login.Close();}
frmlogin.cs文件内容如下:publicboolCheckLogin(){this.ShowDialog();returnm_bLogin;}privatevoidcmdOk_Click(objectsender,EventArgse){m_bLogin=UserAndPwd();if(m_bLogin)//如果登录成功,关闭登录窗口,打开主画面{this.Close();}else{MessageBox.Show("请检测用户名和密码是否正确!");}}publicboolUserAndPwd()//验证用户名和密码{boolbRet=false;//查询语句stringsql="selectcount(*)fromUserswhereUserAccount='"+userTxt.Text+"'andUserPwd='"+PassTxt.Text+"'";//验证用户返回是否成功bRet=SqlWork.validate(sql);//MessageBox.Show(bRet.ToString());//获取当前用户名UserName=userTxt.Text;//返回是否验证成功启动主界面returnbRet;}
解决方案
解决方案二:
你这个login.Close();你这个页面都关闭了,他当然关闭啊....赶紧给分..别墨迹..
解决方案三:
//建议做法:Program.cs里就启动LoginForm就行,开启主窗体放到登陆窗体确定事件中做//Program.csApplication.Run(newFrmLogin();//LoginForm.csprivatevoidcmdOk_Click(objectsender,EventArgse){m_bLogin=UserAndPwd();if(m_bLogin)//如果登录成功,关闭登录窗口,打开主画面{FrmMainfrmmain=newFrmMain();this.Close();}else{MessageBox.Show("请检测用户名和密码是否正确!");}}
解决方案四:
参考一下:http://www.cnblogs.com/tgyun/archive/2008/12/22/1359573.html
解决方案五:
publicstaticboolLoginFlag=false;///<summary>///应用程序的主入口点。///</summary>[STAThread]staticvoidMain(){Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Loginlogin=newLogin();login.ShowDialog();if(LoginFlag==true){Application.Run(newMainFrm());}else{Application.Exit();}}LoginFrm中,Button中验证成功后:Program.LoginFlag=true;this.Close();
解决方案六:
FrmLoginlogin=newFrmLogin();FrmMainfrmmain;if(login.CheckLogin()){Application.Run(frmmain=newFrmMain());login.Close();}这儿的LOGIN.CLOSE()可以不要了
解决方案七:
login.Close();改成Login.hide();让Login隐藏,不要关闭!
解决方案八:
login.close()当然窗口会关闭啦
解决方案九:
感谢各位的回答,但是问题仍然没有解决!上面的方法都试了一遍还没解决!问题再重声一遍,用户验证的时候,如果用户信息正确,frmlogon窗口关闭,frmmain窗口正常打开!错误在,如果用户信息有误,程序验证提示错误后就立即退出了,而不是我希望的能继续验证用户信息!希望大家再提出方案!能解决问题的决不墨迹立即给分,不认真回答的就别想了!
解决方案十:
我想应该是逻辑的问题,你像我这种思路试试!pricateboolbRet=false;publicboolCheckLogin(){this.ShowDialog();returnm_bLogin;}privatevoidcmdOk_Click(objectsender,EventArgse){if(bRet==true)//如果登录成功,关闭登录窗口,打开主画面{this.Close();}else{MessageBox.Show("请检测用户名和密码是否正确!");}}publicboolUserAndPwd()//验证用户名和密码{boolbRet1=false;//查询语句stringsql="selectcount(*)fromUserswhereUserAccount='"+userTxt.Text+"'andUserPwd='"+PassTxt.Text+"'";//验证用户返回是否成功bRet1=SqlWork.validate(sql);if(bRet1==true){bRet=true;}else{bRet=false;}//MessageBox.Show(bRet.ToString());//获取当前用户名UserName=userTxt.Text;//返回是否验证成功启动主界面returnbRet;}
解决方案十一:
不一定是逻辑问题!楼上的兄弟,我感觉if(bRet1==true){bRet=true;}else{bRet=false;}
这段没什么必要,直接返回bRet1就行了!补充一点,我在建项目的时候,窗口的顺序是先frmmain再frmlogin!我重新建了个工程,frm1是登录窗口,frm2是mian窗口,用自己的代码测试功能正常。请问是不是有什么东西我没有配置好?