首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

登陆框不解

2013-10-29 
登陆框疑惑本帖最后由 tnijerry 于 2013-10-28 10:40:03 编辑为什么连上数据库了,输入的用户名和密码都正

登陆框疑惑
本帖最后由 tnijerry 于 2013-10-28 10:40:03 编辑    为什么连上数据库了,输入的用户名和密码都正确,主界面却出不来呢?

下面是代码:
主程序代码:
void __fastcall TForm1::FormCreate(TObject *Sender)
{

Application->ShowMainForm=false;   // 使主窗口先不出现;
Form1->Visible=false;

Form2 = new TForm2(this);

if(Form2->ShowModal() == mrOk)
{
Form1->Visible= true ;
}
else
{
delete Form2;
Application->Terminate();  //程序结束
}

}

登陆框程序代码:

void __fastcall TForm2::Button1Click(TObject *Sender)
{
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
String sql ="select * from login where UserName = '"+Edit1->Text+"'";
sql += "and Password = '"+Edit2->Text+"'";
ADOQuery1->SQL->Add(sql);
ADOQuery1->Open();

if(ADOQuery1->RecordCount)
{
ModalResult = mrOk ;  //用户名和密码正确时,此行代码确实是被执行了
}
else
{
ModalResult = mrCancel ;
}
}
[解决办法]

引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

可能是界面显示出来了,但是被其他界面覆盖了
我记得好像visiable=true相当于show,而show很容易被挡住


不关show的问题,用户名和代码都正确的情况下,主程序居然执行了如下代码:
delete Form2;
Application->Terminate();  //程序结束

而登陆框中是执行如下程序:
ModalResult = mrOk ;  //用户名和密码正确时,此行代码确实是被执行了

一直都没想通这是怎么回事?


看起来,不可能啊
你没把ShowModal的返回值调试看看?


我有试过的,ShowModal的返回值一直都是2,就是mrCancel 


那就检查sql和RecordCount的值
其实有可能输入用户名和密码时,后面有空格或者其他不可见字符,因为你没有trim

热点排行