while(!dbadmin.IsEOF())
{     c=dbadmin.m_name;
       if(a==c)//admin=name
   {    d=dbadmin.m_password;
   if(b==d)
{    m_bLogadmin=TRUE;
            GetParent()->SendMessage(
            ::RegisterWindowMessage(LOGADMIN_MSGSTRING), 
             0, (LPARAM)this);
                m_bLogadmin=FALSE;
    OnOK();
k=0;
    break;
   }
  else 
    dbadmin.MoveNext();
   }
}
if(k==0)
 m_Efit="";为什么只执行了if(a==c)就不能继续执行了?!

解决方案 »

  1.   

    真的看不懂,我想获取数据库中的字段值应该是:
    while(!RecSet.IsEOF()) // 有没有到表结尾
    {
    RecSet.GetFieldValue("Name",var);
    strName = (LPCSTR)var.pbstrVal;
    RecSet.GetFieldValue("Age",var);
    strAge = (LPCSTR)var.pbstrVal;
    m_AccessList.AddString( strName + " --> "+strAge ); RecSet.MoveNext();
    }
      

  2.   

    你的dbadmin到底是个什么类型,看起来好象是个记录集。
    可是怎么会有m_password,m_name 这些成员变量 的?
    你试试这样:
    COleVariant var;
    var.ChangeType(VT_BSTR, NULL);
    while(!RecSet.IsEOF())
    {
    RecSet.GetFieldValue("Name",var);
    strName = (LPCSTR)var.pbstrVal;
    RecSet.GetFieldValue("Password",var);
    strPassword = (LPCSTR)var.pbstrVal;
                       if(strcmp(strPassword,m_password)==0)
                         {...............}
                       else
                         {.................}                  RecSet.MoveNext();
                }
      

  3.   

    去联合兴邦看看吧!(lx)http://www.qdcombine.com
      

  4.   

    如果执行了if(a==c)后就不执行了.那么可能是这个条件为false
    这样的话根据你的程序,他将什么也不做,也不会递增(MoveNext)
    处于一个死循环中.所以程序挂起.