贴代码,大家都来看看.为什么会崩溃,该如何处理

贴代码,大家都来看看.为什么会崩溃
C/C++ code
m_list.DeleteAllItems();
    CDatabase m_database;
    CRecordset rs(&m_database);
    //if( ! m_database.IsOpen())
        //m_database.OpenEx( " DSN=student; " );
     //else 
        //AfxMessageBox( " 数据库连接失败! " );

    //CString ConnStr(DRIVER=SQL Server;DATABASE=test;SERVER=localhost;UID=;Trusted_Connection=Yes)
    m_database.Open(NULL,FALSE,FALSE,_T("ODBC;Dsn=student;server=localhost;uid=;pwd="));
    CString sql("select * from user_pass");
    CString id;
    CString username;
    CString password;
    rs.Open(CRecordset::forwardOnly);
    rs.MoveFirst();
    //if (!rs.IsOpen()) 
    //{ 
       //rs.Open(AFX_DB_USE_DEFAULT_TYPE,sql);
    //}
      //rs.GetFieldValue(_T("m_username"),username);
      int i=0;
    //int len = m_list.GetHeaderCtrl()->GetItemCount();
    m_recodsert.Open(AFX_DB_USE_DEFAULT_TYPE,sql);
    while (!rs.IsEOF() )
    {
        //rs.GetFieldValue(_T("m_ID"),id);//name为数据库表里面的列名
         //rs.GetFieldValue(_T("m_password"),password);
         
             m_list.InsertItem(i,"");
            m_list.SetItemText(i,0,m_pSet->m_ID);
        m_list.SetItemText(i,1,m_pSet->m_username);
        m_list.SetItemText(i,2,m_pSet->m_password);
        
        i++;
            rs.MoveNext();
     
    }
    rs.Close();
    if(m_database.IsOpen()) 
        { 
          m_database.Close();
        } 


------解决方案--------------------
try
catch
然后看HRESULT
------解决方案--------------------
debug~~~~看看