CString strName;
dlg->m_pRecordset = dlg->m_pConnection->Execute("SELECT * FROM _user WHERE tel = 23", NULL, adCmdText);
if(!dlg->m_pRecordset->adoBOF)
{
_variant_t vIndex = (long)0;
_variant_t vCount = dlg->m_pRecordset->Fields->GetItem(vIndex)->Value;
dlg->m_pRecordset->Close();
strName = (LPCSTR)_bstr_t(vCount);
dlg->m_list.InsertString(0, strName);
}
else
dlg->m_list.InsertString(0, "无记录");如果tel=23(该值在表中存在),则程序运行正确;若我换一个表中不存在的值,那么程序执行的这里就会异常中止。但我需要判断一个值在我的表中到底有没有,请问各位达人们有什么建议,还望不吝赐教。谢谢了!!!
dlg->m_pRecordset = dlg->m_pConnection->Execute("SELECT * FROM _user WHERE tel = 23", NULL, adCmdText);
if(!dlg->m_pRecordset->adoBOF)
{
_variant_t vIndex = (long)0;
_variant_t vCount = dlg->m_pRecordset->Fields->GetItem(vIndex)->Value;
dlg->m_pRecordset->Close();
strName = (LPCSTR)_bstr_t(vCount);
dlg->m_list.InsertString(0, strName);
}
else
dlg->m_list.InsertString(0, "无记录");如果tel=23(该值在表中存在),则程序运行正确;若我换一个表中不存在的值,那么程序执行的这里就会异常中止。但我需要判断一个值在我的表中到底有没有,请问各位达人们有什么建议,还望不吝赐教。谢谢了!!!
不能这样来判断有没有记录,用下面的语句:
if ((dlg->m_pRecordset->EOF) && (dlg->m_pRecordset->BOF))
if ((dlg->m_pRecordset!=NULL) && (dlg->m_pRecordset->EOF) && (dlg->m_pRecordset->BOF))
{
if ( IsOpen() )
{
if ( m_pRecordset->BOF && m_pRecordset->AdoEOF )
{
return true;
}
return false;
} return true;
}
long CADORecordset::GetRecordCount()
{
long lRowConut = 0L;
if ( IsOpen() )
{
lRowConut = m_pRecordset->GetRecordCount();
if ( lRowConut == -1 )
{
lRowConut = 0L; if ( !IsEmpty() )
{
m_pRecordset->MoveFirst();
while ( !m_pRecordset->AdoEOF )
{
m_pRecordset->MoveNext();
lRowConut++;
}
m_pRecordset->MoveFirst();
}
}
} return lRowConut;
}