CMember Search;

CString strSQL=_T("");
CSearchMember dlg;
if(IDOK == dlg.DoModal())
{
if((dlg.m_strMemID == "")&&(dlg.m_strName == ""))
{
AfxMessageBox("查询条件非法!");
return;
}
else
{
if(!dlg.m_strMemID.IsEmpty ())
strSQL+="(员工编号=?)";
else
strSQL+="(?)"; if(!dlg.m_strName.IsEmpty())
strSQL += "AND(姓名=?)";
else
strSQL +="AND(?)";
}
Search.m_strFilter = strSQL;
Search.m_memID = dlg.m_strMemID;
Search.m_name = dlg.m_strName;
Search.m_strSort = "ID ASC";
try
{
Search.Open();
while(!Search.IsEOF())
{
Search.MoveNext();
} UpdateData(FALSE);
if(Search.GetRecordCount()==0)
MessageBox("查无此记录,请重新输入查询","记录查询");
Search.Close();
}
catch(CDBException *theException)
{
AfxMessageBox(theException->m_strError );
}
}
在Open的时候,catch 抛出这样的提示:COUNT 字段不正确,请问为什么??

解决方案 »

  1.   


    if(!dlg.m_strMemID.IsEmpty ())
       strSQL+="(在这里加个空格)(员工编号=?)";
    else
       strSQL+="(在这里加个空格)(?)";以下的语句类似,试试。
      

  2.   

    用messagebox看看你的最后strSQL是不是正确的SQL语句
      

  3.   

    不成啊,我直接用sql语句可以,可是mfc过滤为什么会弹出这个“COUNT 字段不正确”异常错,一般弹出这样的错误,可能的问题是出在哪里啊?我不是必须用这个方法,而是想知道他错在哪里!拜托!