看了一下,m_pTreeConn不是在本函数里打开的吧?为什么你在这里要把它给Close并且置NULL了呢?

解决方案 »

  1.   

    m_pTreeConn是在这个模态对话框初始化的时候设置的
    BOOL CImportWizard::OnInitDialog() 
    {
    CDialog::OnInitDialog();

        HRESULT hRes;
    try
    {
            hRes = m_pTreeConn.CreateInstance(_T("ADODB.Connection"));
    if(SUCCEEDED(hRes))
    {
    m_pTreeConn->ConnectionTimeout = 8;
    //连接ACCESS2000
    hRes = m_pTreeConn->Open(_bstr_t((LPCTSTR)ConnString),
    _T(""),_T(""),adModeUnknown);
     }
    }
    catch(_com_error e)//捕捉异常
    {
     CString errormessage;
     errormessage.Format(_T("连接contacts.mdb数据库失败!\r\n错误信息:%s"),e.ErrorMessage());
     AfxMessageBox(errormessage);//显示错误信息
     return FALSE;
    }

    return TRUE;  // return TRUE unless you set the focus to a control
                  // EXCEPTION: OCX Property Pages should return FALSE
    }// if(m_pTreeConn->State)
    // {
    // m_pTreeConn->Close();
    // m_pTreeConn= NULL;
    // }
    把这个注释掉,也是一样,真郁闷了,2天了都没解决……各位帮帮忙啊
      

  2.   

    那这个对话框的代码有什么特别的地方?
    还有这个逻辑上有点问题, 既然Connection的Create和Open是在OnInitDialog中,那么Close和NULL就应该放在OnClose中