BOOL CLibrary2App::InitInstance()
{
AfxEnableControlContainer();
ADOConn adoconn;
CloginDlg mydlg;
if(mydlg.DoModal()==IDOK)
{  
CString sqlstr;
try
{
sqlstr.Format("select* from useinfo where user='%s'and password='%s'",mydlg.m_id,mydlg.m_password);
         _bstr_t vSQL;
 vSQL=(_bstr_t)sqlstr;
 _RecordsetPtr  m_recordset;
 m_recordset=adoconn.GetRecordSet(vSQL);
 CString str1,str2;
 str1=(LPCTSTR)(_bstr_t)(m_recordset->GetCollect("user"));
 str2=(LPCTSTR)(_bstr_t)(m_recordset->GetCollect("password"));
 str1.TrimRight();
 str2.TrimRight();
 if(str1==mydlg.m_id||str2==mydlg.m_password)
 {
 AfxMessageBox("登陆成功");
 }
 else
 {
 AfxMessageBox("登陆失败2");
 return false;
 }  
}
catch(...)
{
AfxMessageBox("登陆失败3");
return false;
}
}
程序运行结果显示登录失败3 数据库连接正常的!指点下 

解决方案 »

  1.   

    补充下:
    刚换了下写法:sqlstr.Format("select* from useinfo where user='%s'and password='%s'",mydlg.m_id,mydlg.m_password);
      _bstr_t vSQL;
    vSQL=(_bstr_t)sqlstr;
     直接改成
    vSQL="select* from useinfo" 报告 登陆成功!·~~~估计是where user='%s'and password='%s'",mydlg.m_id,mydlg.m_password);
    这段出问题了 
      

  2.   

    select* from useinfo where user
    ->
    select * from useinfo where user少了空格吧?
      

  3.   

    在vSQL之前加上AfxMessageBox(sqlstr),看看对话框是否出来,如果出来了,显示的sql语句是什么~
      

  4.   

    显示完整的SQL语句 然后登陆失败··
      

  5.   

    你把sql语句放在查询分析器里执行一下试试,看是否成功~
      

  6.   


    你把sql语句放在查询分析器里执行一下试试,看是否成功~
    [/Quote]
    数据库出问题了 不过我后面改了个数据库结果查询分析器可以正确显示,
    vSQL="select * from 用户信息 where 卡号='mydlg.m_id' and 学号='mydlg.m_password'"
    显示用户信息表无效