我在MFC中是用对话框连接的access数据库,利用listctrl控件来把查询的结果显示出来。可是我只能点击查询一次。不能在进行查询了。程序被强制关闭了。不知是为什么??代码如下:
void COutDg::OnLook() 
{
    // TODO: Add your control notification handler code here
    CString TempSql;
    int i = -1,r;
    CRearchDlg dlg;
    m_listctrl.DeleteAllItems();
    if(dlg.DoModal()==IDOK)
    {  m_OpSet->MoveFirst();
       while(!m_OpSet->IsEOF())
       {
           if(m_OpSet->m_outime==dlg.m_time)
           {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;
            r=i+1;
            lvitem.pszText =itoa(r, temp, 10); 
            m_listctrl.InsertItem(&lvitem);//插入行项目

        
            m_OpSet->GetFieldValue("name",TempSql);
            m_listctrl.SetItemText(i, 1, (LPCTSTR)TempSql);

            m_OpSet->GetFieldValue("outime",TempSql);
            m_listctrl.SetItemText(i, 2, (LPCTSTR)TempSql);

            m_OpSet->GetFieldValue("outotal",TempSql);
            m_listctrl.SetItemText(i, 3, (LPCTSTR)TempSql);

            m_OpSet->GetFieldValue("outreason",TempSql);
            m_listctrl.SetItemText(i, 4, (LPCTSTR)TempSql);

            m_OpSet->GetFieldValue("other",TempSql);
            m_listctrl.SetItemText(i, 5, (LPCTSTR)TempSql);//增加行内容
           }
       m_OpSet->MoveNext();
     }//end while
     m_OpSet->Close();
  }//end if
  delete m_OpSet;    
}