我要搜索的记录明明在库中没有,但ADO的_RecordsetPtr m_pRecordset却告诉我"已经找到!"
//根据员工编号读取所有字段值
void Cinfo_base::GetData(CString cKSH)
{
//连接数据库
ADOConn m_AdoConn;
m_AdoConn.OnInitADOConn();
//设置SELECT语句
_bstr_t vSQL;
vSQL = "SELECT * FROM info_base WHERE KSH=" + cKSH;
//执行SELETE语句
_RecordsetPtr m_pRecordset;
m_pRecordset = m_AdoConn.GetRecordSet(vSQL);
//就是这里!!!!!!!!!!!!!!!!!!
if (m_pRecordset->adoEOF == 1)
AfxMessageBox("no Found!");
else
AfxMessageBox("Found!");
////////////////////////////////////////////////////////
//返回各列的值
if (m_pRecordset->adoEOF == 1)
{
Cinfo_base();
}
else
{
KSH = cKSH;
XM = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("XM");
XBDM = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("XBDM");
CSRQ = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("CSRQ");
BYXXDM = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("BYXXDM");
BJH = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("BJH");
MZDM = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("MZDM");
ZZMMDM = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("ZZMMDM");
YZBM = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("YZBM");
KSLBDM = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("KSLBDM");
XJH = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("XJH");
HKSZD = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("HKSZD");
LXDH = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("LXDH");
SFZH = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("SFZH");
BZ = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("BZ");
}
//断开与数据库的连接
m_AdoConn.ExitConnect();
}
我输了一个不存在的员工编号,程序报告"Found!",执行赋值语句时出错!这是怎么回事?