sinat_37540539
sinat_37540539
2017-05-04 13:55
采纳率: 75%
浏览 2.5k

MFC操作数据库删除数据

    int index = m_ParaListCtrl.GetCurSel();
    if(index < 0)
    {
        MessageBox(TEXT("请先选择需要删除的记录!"));
        return;
    }
    m_ParaListCtrl.DeleteItem(index);

    //从数据库中删除记录
    CString strSQL;
    strSQL.Format(TEXT("select * from results"));
    CRecordset rs(&theApp.m_Config.m_db);
    rs.Open(CRecordset::forwardOnly,strSQL,CRecordset::readOnly);
    int i=0;
    CString strID;
    while(!rs.IsEOF())
    {
        if(i == index)
        {
            CDBVariant var;
            rs.GetFieldValue(TEXT("ID"),var,SQL_C_SLONG);
            strID.Format(TEXT("%d"),var.m_iVal);            
            break;
        }
        i++;
        rs.MoveNext();
    }
    rs.Close();

    try
    {
        strSQL.Format(TEXT("delete from results where ID = %s"),strID);
        theApp.m_Config.m_db.ExecuteSQL(strSQL);
    }
    catch(CDBException* e)
    {

    }
    m_TotalNum--;
    OnBnClickedButtonQuery();   

目前这个是选择删除单条数据,我需求把这段改成多选删除。
求大神给点详细的方法,最好是能把这段直接改了。或者是给段源码,
让我学习一下。。感谢了

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • caozhy
    已采纳
    点赞 评论
  • oyljerry
    oyljerry 2017-05-04 14:48

    多选,你就先用一个链表保存所有的strID,然后循环遍历一条条删除

    点赞 评论
  • shen_wei
    shen_wei 2017-05-05 03:28

    单删除是一个值,那多选择就是一个数组。。。剩下的就是for循环删除。。。

    点赞 评论

相关推荐