奇怪这样只能读取数据库第一个行的数据在组合框上,在下去的值就读不进去了,我有用 x_ado.pRst->MoveNext();啊,怎么不能读取在下一条记录呢?真是怪哉
     CString  part_sql;
part_sql.Format("select v_part from vindicate");
        x_ado.pRst = x_ado.pConn->Execute((_bstr_t)part_sql,NULL,adCmdText);
      if(!x_ado.pRst->rsEOF)
{     ((CComboBox*)GetDlgItem(IDC_part))->AddString((LPCSTR)(_bstr_t)x_ado.pRst->GetCollect("v_part"));

 x_ado.pRst->MoveNext();
}

解决方案 »

  1.   

    if(!x_ado.pRst->rsEOF)
     改成   if(!x_ado.pRst->rsEOF()) 或者 if(!(x_ado.pRst->rsEOF()))  试试
      

  2.   

    把if改成while这样的错误不应该发生吧!
      

  3.   

    就是if在作怪,把它改成while就行了。用if一次只读一条记录,当然得不到你想要的结果了。
      

  4.   

    改为循环读取:CString part_sql;
    part_sql.Format("select v_part from vindicate");
      x_ado.pRst = x_ado.pConn->Execute((_bstr_t)part_sql,NULL,adCmdText);
        
    x_ado.pRst->MoveFirst();
    while(!x_ado.pRst->rsEOF)
    {  ((CComboBox*)GetDlgItem(IDC_part))->AddString((LPCSTR)(_bstr_t)x_ado.pRst->GetCollect("v_part"));x_ado.pRst->MoveNext();
    }