对于 查询 按钮
《ADO操作access全过程和CListCtrl的用法》的写法是:
void CBrow::OnButtonSelect()
{
UpdateData(TRUE); if ( strcmp(m_strSelect,"") == 0 )
{
AfxMessageBox("请输入你要查询的姓名");
return;
} CString strTemp;
strTemp = "SELECT * FROM telelist WHERE name like '%" + m_strSelect + "%'";
m_ListCtrl.DeleteAllItems();
CADORecordset* pRs = new CADORecordset(CTeleApp::g_pDb);
CString TempSql;
int i = -1;
if(pRs->Open((LPCTSTR) strTemp ))
{
while(!pRs->IsEof())
{
LV_ITEM lvitem;
lvitem.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_STATE;
lvitem.state = 0;
lvitem.stateMask = 0;
char temp[50];
lvitem.iItem = ++i;
lvitem.iSubItem = 0;
lvitem.pszText =itoa(i, temp, 10);
m_ListCtrl.InsertItem(&lvitem); pRs->GetFieldValue("name",TempSql);
m_ListCtrl.SetItemText(i, 1, (LPCTSTR)TempSql); pRs->GetFieldValue("tele",TempSql);
m_ListCtrl.SetItemText(i, 2, (LPCTSTR)TempSql); pRs->GetFieldValue("res",TempSql);
m_ListCtrl.SetItemText(i, 3, (LPCTSTR)TempSql); pRs->GetFieldValue("ID",TempSql);
m_ListCtrl.SetItemText(i, 4, (LPCTSTR)TempSql);
pRs->MoveNext();
}
pRs->Close();
}
else
AfxMessageBox("记录集创建失败");
delete pRs;
}其中: BOOL IsEof()
{return m_pRecordset->EndOfFile == VARIANT_TRUE;};
用的是 ado 的类,那我自己 声明了一个 IsEof()用在
while(!IsEof())
{
LV_ITEM lvitem;
lvitem.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_STATE;
lvitem.state = 0;
lvitem.stateMask = 0;
char temp[50];
lvitem.iItem = ++i;
lvitem.iSubItem = 0;
lvitem.pszText =itoa(i, temp, 10);
m_ListCtrl.InsertItem(&lvitem); pRs->GetFieldValue("name",TempSql);
m_ListCtrl.SetItemText(i, 1, (LPCTSTR)TempSql); pRs->GetFieldValue("tele",TempSql);
m_ListCtrl.SetItemText(i, 2, (LPCTSTR)TempSql); pRs->GetFieldValue("res",TempSql);
m_ListCtrl.SetItemText(i, 3, (LPCTSTR)TempSql); pRs->GetFieldValue("ID",TempSql);
m_ListCtrl.SetItemText(i, 4, (LPCTSTR)TempSql);
pRs->MoveNext();
}为什么就变成 死循环了??
《ADO操作access全过程和CListCtrl的用法》的写法是:
void CBrow::OnButtonSelect()
{
UpdateData(TRUE); if ( strcmp(m_strSelect,"") == 0 )
{
AfxMessageBox("请输入你要查询的姓名");
return;
} CString strTemp;
strTemp = "SELECT * FROM telelist WHERE name like '%" + m_strSelect + "%'";
m_ListCtrl.DeleteAllItems();
CADORecordset* pRs = new CADORecordset(CTeleApp::g_pDb);
CString TempSql;
int i = -1;
if(pRs->Open((LPCTSTR) strTemp ))
{
while(!pRs->IsEof())
{
LV_ITEM lvitem;
lvitem.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_STATE;
lvitem.state = 0;
lvitem.stateMask = 0;
char temp[50];
lvitem.iItem = ++i;
lvitem.iSubItem = 0;
lvitem.pszText =itoa(i, temp, 10);
m_ListCtrl.InsertItem(&lvitem); pRs->GetFieldValue("name",TempSql);
m_ListCtrl.SetItemText(i, 1, (LPCTSTR)TempSql); pRs->GetFieldValue("tele",TempSql);
m_ListCtrl.SetItemText(i, 2, (LPCTSTR)TempSql); pRs->GetFieldValue("res",TempSql);
m_ListCtrl.SetItemText(i, 3, (LPCTSTR)TempSql); pRs->GetFieldValue("ID",TempSql);
m_ListCtrl.SetItemText(i, 4, (LPCTSTR)TempSql);
pRs->MoveNext();
}
pRs->Close();
}
else
AfxMessageBox("记录集创建失败");
delete pRs;
}其中: BOOL IsEof()
{return m_pRecordset->EndOfFile == VARIANT_TRUE;};
用的是 ado 的类,那我自己 声明了一个 IsEof()用在
while(!IsEof())
{
LV_ITEM lvitem;
lvitem.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_STATE;
lvitem.state = 0;
lvitem.stateMask = 0;
char temp[50];
lvitem.iItem = ++i;
lvitem.iSubItem = 0;
lvitem.pszText =itoa(i, temp, 10);
m_ListCtrl.InsertItem(&lvitem); pRs->GetFieldValue("name",TempSql);
m_ListCtrl.SetItemText(i, 1, (LPCTSTR)TempSql); pRs->GetFieldValue("tele",TempSql);
m_ListCtrl.SetItemText(i, 2, (LPCTSTR)TempSql); pRs->GetFieldValue("res",TempSql);
m_ListCtrl.SetItemText(i, 3, (LPCTSTR)TempSql); pRs->GetFieldValue("ID",TempSql);
m_ListCtrl.SetItemText(i, 4, (LPCTSTR)TempSql);
pRs->MoveNext();
}为什么就变成 死循环了??
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货