如题
各位大哥
小弟做了登陆
代码如下
CString userName;
CString userPass;
CEdit* loginName = (CEdit*)GetDlgItem(IDC_EDIT1);
CEdit* loginPass = (CEdit*)GetDlgItem(IDC_EDIT2); loginName->GetWindowText(userName);
loginPass->GetWindowText(userPass); BaseRecordset pRs;
CString sql="Select userName,userPassword from UserList where userName = '" + userName + "' And userPassword = '" + userPass + "' And userType='管理员'";
AfxMessageBox(sql);
if( pRs.Open((_bstr_t)sql, adCmdText) )
{ if( !pRs.IsEmpty() )
{
m_userNameStr=pRs.GetFieldValue(0);
m_userPassStr=pRs.GetFieldValue(1);
m_clew.ShowWindow(FALSE);
ShowWindow(FALSE);
if (m_userNameStr!="" || m_userPassStr!="")
{
AfxMessageBox("11111111");
m_state=1;
CDialog::OnOK();
CString m_state1;
m_state1.Format(_T("%d"),m_state);
}
else//输入错误到不了这里
{
AfxMessageBox("1111111122222");
m_userNameStr = "";
m_clew.ShowWindow(TRUE);
}
}
各位大哥
小弟做了登陆
代码如下
CString userName;
CString userPass;
CEdit* loginName = (CEdit*)GetDlgItem(IDC_EDIT1);
CEdit* loginPass = (CEdit*)GetDlgItem(IDC_EDIT2); loginName->GetWindowText(userName);
loginPass->GetWindowText(userPass); BaseRecordset pRs;
CString sql="Select userName,userPassword from UserList where userName = '" + userName + "' And userPassword = '" + userPass + "' And userType='管理员'";
AfxMessageBox(sql);
if( pRs.Open((_bstr_t)sql, adCmdText) )
{ if( !pRs.IsEmpty() )
{
m_userNameStr=pRs.GetFieldValue(0);
m_userPassStr=pRs.GetFieldValue(1);
m_clew.ShowWindow(FALSE);
ShowWindow(FALSE);
if (m_userNameStr!="" || m_userPassStr!="")
{
AfxMessageBox("11111111");
m_state=1;
CDialog::OnOK();
CString m_state1;
m_state1.Format(_T("%d"),m_state);
}
else//输入错误到不了这里
{
AfxMessageBox("1111111122222");
m_userNameStr = "";
m_clew.ShowWindow(TRUE);
}
}
这个判断有问题。
应该是
if (m_userNameStr!="" && m_userPassStr!="")
&&与..................XX与XX只要当两边都为真整个才为真
if( !pRs.IsEmpty() ) // 这句不成立,所以这个if语句都不可能进入了。
我应该怎么修改
我试了一下 if( !pRs.End() )
不行
这个判断写的不对
我应该怎么写这个判断呢
我点了一下如果输入正确还是能进去的
如果输入错误就进不去了
lz看来代码不是你写的,或者你是拷贝过来的。
你可以这样写。
if( !pRs.IsEmpty() ) // 数据库中有数据,执行下面这些
{
m_userNameStr=pRs.GetFieldValue(0);
m_userPassStr=pRs.GetFieldValue(1);
m_clew.ShowWindow(FALSE);
ShowWindow(FALSE);
if (m_userNameStr!="" && m_userPassStr!="")
{
AfxMessageBox("11111111");
m_state=1;
CDialog::OnOK();
CString m_state1;
m_state1.Format(_T("%d"),m_state);
}
else//输入错误到不了这里
{
AfxMessageBox("1111111122222");
m_userNameStr = "";
m_clew.ShowWindow(TRUE); }
else
{
// 数据库中没数据,证明输入的用户名或者密码错误
AfxMessageBox("您输入的用户名或者密码错误");
}
AfxMessageBox("您输入的用户名或者密码错误");
没有输出这句?
没有输出这一句
你能吧你QQ告诉我吗?
我们QQ说
谢谢了
if( pRs.IsEmpty() )
{
MessageBox("input wrong imformation!");
}
关于判断是否为空的,可以在前面判断
loginName->GetWindowText(userName);
loginPass->GetWindowText(userPass);
if(loginName==""||loginPass=="")
{
MessageBox("input incompleted information");
}
不用放到下面的数据库那块判断,楼主可以试一下