MyException - 我的异常网
当前位置:我的异常网» VC/MFC » CListCtrl 剔除数据后总是更新失败

CListCtrl 剔除数据后总是更新失败

www.myexceptions.net  网友分享于:2013-04-10  浏览:4次
CListCtrl 删除数据后总是更新失败
本帖最后由 firsun 于 2013-03-30 21:01:54 编辑
我是通过删除后调用DeleteAllItems然后再显示来更新的,但是总是无法更新。
麻烦帮忙看看。
调用OnUserDelete()  后无法正常更新,关闭对话框,再打开才显示删除后的结果。

void CUerManagement::OnUserDelete() 
{
// TODO: Add your control notification handler code here
int cnt = m_listctrl.GetSelectionMark();
CUserRecordSet curs;
if(cnt<0)
AfxMessageBox("请选择一条纪录删除");
else
{
CString strSQL;
CString storage = m_listctrl.GetItemText(cnt,0);
strSQL.Format("select * from login where name = '%s' ",storage);
if(curs.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
{
//删除该记录
curs.Delete();
//更新
loadInfo();
}
}
if(curs.IsOpen())
curs.Close();
}

void CUerManagement::loadInfo()
{
m_listctrl.DeleteAllItems(); 
CUserRecordSet curs;
CString strSql;    
strSql = "select * from login";
int index = 0;   
if(curs.Open(AFX_DB_USE_DEFAULT_TYPE,strSql))
        {
while(!curs.IsEOF())
{
m_listctrl.InsertItem(index,curs.m_name);
m_listctrl.SetItemText(index,1,curs.m_password);
CString purview;
purview.Format("%ld",curs.m_purview);
m_listctrl.SetItemText(index,2,purview);
index+=1;
curs.MoveNext();
}
}
if(curs.IsOpen())
curs.Close();
}

------解决方案--------------------
if(curs.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
        {
            //删除该记录
            curs.Delete();
            //更新
            loadInfo();curs.Close();
        }
    }


        
------解决方案--------------------
1楼的关闭链接还是需要加上去得,另外还是把curs.Delete();这个函数给贴出来吧,因为删除成功与否关系在这个函数上,如果没有删除成功或者删除后需要有后续操作,那么就是更新失败啦!
------解决方案--------------------
不好意思我贴错了,应该是:
curs.Delete();curs.Close();
            //更新
            loadInfo();
因为你没有关闭原来的记录集,下次打开可能不会更新而是使用了同一个连接以及缓存数据。
------解决方案--------------------
关注一下!

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有