我现在要删除数据库某一行的数据,当我点击我要删除的某一行后,点击删除,提示删除成功,但是那一行还有显示,我必须退出数据库后,在进入数据库才能看见数据库少了一条,但却不是我删除的那一行,我不知道是哪写错了,代码如下:
POSITION pos=m_Listctrl.GetFirstSelectedItemPosition();
if(pos==NULL)
{
MessageBox(_T("请选择要删除的服务器"),_T("提示信息"),MB_ICONINFORMATION|MB_OK);
return;
}
else
{
nId=(int)m_Listctrl.GetNextSelectedItem(pos);
m_pRecordset->Delete((enum AffectEnum)nId);
MessageBox("删除成功!");
m_pRecordset->Update();
}
m_pRecordset->Close();
初学者,望指点一下,谢谢!
你的nId对应的是选择的ListCtrl的行,而不是数据库记录的id啊
你到底是删除MFC控件CLISTCTRL中的某一行的内容还是删除数据的某一行的内容啊
int sel = m_Listctrl.GetCurSel();
m_Listctrl.DeleteString(sel);
建议:
1、在将数据加载到CListCtrl时第一列使用数据库的IDENTITY
2、
POSITION pos=m_Listctrl.GetFirstSelectedItemPosition();
if(pos==NULL)
{
MessageBox(_T("请选择要删除的服务器"),_T("提示信息"),MB_ICONINFORMATION|MB_OK);
return;
}
else
{
nId=(int)m_Listctrl.GetNextSelectedItem(pos);
m_pRecordset->Delete((enum AffectEnum)m_Listctrl.GetItemText(nID,0));
MessageBox("删除成功!");
m_pRecordset->Update();
}
m_pRecordset->Close();
建议:
1、在将数据加载到CListCtrl时第一列使用数据库的IDENTITY
2、
POSITION pos=m_Listctrl.GetFirstSelectedItemPosition();
if(pos==NULL)
{
MessageBox(_T("请选择要删除的服务器"),_T("提示信息"),MB_ICONINFORMATION|MB_OK);
return;
}
else
{
nId=(int)m_Listctrl.GetNextSelectedItem(pos);
m_pRecordset->Delete((enum AffectEnum)m_Listctrl.GetItemText(nID,0));
MessageBox("删除成功!");
m_pRecordset->Update();
m_Listctrl.DeleteItem(nID);
}
m_pRecordset->Close();