VC++6.0 中使用ODBC 连接 Access数据库 后对数据的操作,该如何解决

VC++6.0 中使用ODBC 连接 Access数据库 后对数据的操作
当我删除指定id成员后,再将表中全部成员信息显示出来时就会出错。可能是m_Pset指向的数据集已经不正确。

代码如下,哪位高人指点指点我(新手)。。。

// 这是删除模块
if ( dlg.DoModal() == IDOK )
{
if( m_pSet->IsOpen() )
m_pSet->Close();
m_pSet->m_strFilter.Format( "id=%ld", dlg.m_id );
m_pSet->Open();
if( m_pSet->IsEOF() )
MessageBox( "没有找到相关ID号!" );
else
{
m_pSet->Delete();
MessageBox( "删除管理员成功" );
nbool = FALSE;
}
m_pSet->Close();
}

// 这是将数据库中的信息显示出来的模块

                   m_list.ModifyStyle( 0, LVS_REPORT );
m_list.SetExtendedStyle( LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT );
CRect rect;
GetClientRect( &rect );
int n = rect.Width()/20;
m_list.InsertColumn( 0, "管理员ID", LVCFMT_LEFT, n * 3 );
m_list.InsertColumn( 1, "管理员用户名", LVCFMT_LEFT, n * 3 );
m_list.InsertColumn( 2, "管理员密码", LVCFMT_LEFT, n * 3);

                m_pSet->MoveFirst();
int id;
CString user;
CString pwd;
// 从数据库中读取数据
CHAR szText[256] = { 0 };
while ( !m_pSet->IsEOF() )
{
id = m_pSet->m_id;
user = m_pSet->m_user;
pwd = m_pSet->m_pwd;
sprintf( szText, "%ld", id );
int i = m_list.InsertItem( 0, szText );
m_list.SetItemText( i, 1, user );
m_list.SetItemText( i, 2, pwd );
m_pSet->MoveNext();
}


------解决方案--------------------
m_pSet->Delete();再加句m_pSet->Update()或m_pSet->Refresh(),看有哪个函数,也就是删除后再更新一下记录集