如何用MFC在ListControl中选中某行,在数据库中删除?
在ListControl中已经显示了数据库中的内容。用一下代码可进行对ListControl中选中的某行进行删除。voidCAddress_ListView::OnSde...
在ListControl中已经显示了数据库中的内容。用一下代码可进行对ListControl中选中的某行进行删除。
void CAddress_ListView::OnSdelete()
{
POSITION p=m_address_list.GetFirstSelectedItemPosition(); //删除选定列
while (p)
{
int nSelected=m_address_list.GetNextSelectedItem(p);
m_address_list.DeleteItem(nSelected);
m_address_list.GetFirstSelectedItemPosition();
}
POSITION pos = m_address_list.GetFirstSelectedItemPosition();
int m_nIndex = m_address_list.GetNextSelectedItem(pos);
UpdateData(FALSE); // 得到项目索引
}但它删除的只是ListControl中显示的内容,但数据库(ACCESS)中的内容并没有改变。如何在ListControl中删除后数据库中的内容也同样清除了呢?
如果是在对话框中输入“关键字”,然后在数据库中找到这行进行删除,我用的代码是void CAddress_ListView::OnDelete()
{
CString s;
CDlg_Name dlg;
bool b=0;
m_pSet->MoveFirst();
if (dlg.DoModal()==IDOK)
{
while (!m_pSet->IsEOF())
{
if (m_pSet->m_column1==dlg.m_name)
{
s.Format("是否确定删除%s信息?",dlg.m_name);
if (IDOK==MessageBox(s,"标题",MB_ICONQUESTION|MB_OKCANCEL))
{ m_pSet->Delete();
b=1;
MessageBox("记录已经删除!");
}
else b=1;
}
m_pSet->MoveNext();
}
if (!b) MessageBox("记录没有找到!");
}
}
其中系统自带的指针为m_pSet,m_pSet->Delete();则是进行删除操作。但它的原理是进行字符串匹配,如果真确则指针指向数据库中某行,然后进行删除。
我想在列表控件中选中某行,然后再数据库中删除,如何做到?望高手指教!
PS:悬赏分可追加. 展开
void CAddress_ListView::OnSdelete()
{
POSITION p=m_address_list.GetFirstSelectedItemPosition(); //删除选定列
while (p)
{
int nSelected=m_address_list.GetNextSelectedItem(p);
m_address_list.DeleteItem(nSelected);
m_address_list.GetFirstSelectedItemPosition();
}
POSITION pos = m_address_list.GetFirstSelectedItemPosition();
int m_nIndex = m_address_list.GetNextSelectedItem(pos);
UpdateData(FALSE); // 得到项目索引
}但它删除的只是ListControl中显示的内容,但数据库(ACCESS)中的内容并没有改变。如何在ListControl中删除后数据库中的内容也同样清除了呢?
如果是在对话框中输入“关键字”,然后在数据库中找到这行进行删除,我用的代码是void CAddress_ListView::OnDelete()
{
CString s;
CDlg_Name dlg;
bool b=0;
m_pSet->MoveFirst();
if (dlg.DoModal()==IDOK)
{
while (!m_pSet->IsEOF())
{
if (m_pSet->m_column1==dlg.m_name)
{
s.Format("是否确定删除%s信息?",dlg.m_name);
if (IDOK==MessageBox(s,"标题",MB_ICONQUESTION|MB_OKCANCEL))
{ m_pSet->Delete();
b=1;
MessageBox("记录已经删除!");
}
else b=1;
}
m_pSet->MoveNext();
}
if (!b) MessageBox("记录没有找到!");
}
}
其中系统自带的指针为m_pSet,m_pSet->Delete();则是进行删除操作。但它的原理是进行字符串匹配,如果真确则指针指向数据库中某行,然后进行删除。
我想在列表控件中选中某行,然后再数据库中删除,如何做到?望高手指教!
PS:悬赏分可追加. 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询