我对数据库进行删除读取操作,首先我进行数据的读操作,把数据存入一个结构体变量数组中 COMZL comzl[200], 接着做删除操作,  删除完了以后我想从数据库里面读取数据,把数据的内容再存入这个结构体变量中,结构体名字是COMZL,定义的变量是  COMZL comzl[200],把从数据库的表里面提取的数据存放到结构体里面,其中表中一个字段对应结构体的一个元素,一条记录对应一个结构体对象,例如 comzl[1],  现在已经能够实现删除操作了,在删除响应后我再从数据库里面读取数据,问题出现了 居然把刚才删除的条记录也读取出来了,但是现在明明数据库中那条记录已经不存在了啊!(我打开数据库看的(我用的是access))不知道这个是什么原因引起的??请高手 赐教!删除和读取操作   我想数据库进行删除操作以后是不是要进行刷新什么的操作啊 ??
    补充:我进行删除操作以后,关闭程序,从新运行,这个时候被删除的记录就读取不出来了!请部分代码如下:
void CMyDlg::OnInitDialog()   //读取数据 )(成功读取)
{
readData()
}               void CMyDlg::OnDelData()
{
   m_pRecordset->Move(j,_variant_t((long)adBookFirst));//j是当前记录号
     m_pRecordset->Delete(adAffectCurrent);//(删除数据成功,表中这条记录不见了)
 m_pRecordset->MoveNext();
         
        readData();//(奇怪为什么删除的数据还能读出来呢,???问题所在)
}
void  CMyDlg::readData()
{
           m_pRecordset->MoveFirst();
          while(!m_pRecordset->adoEOF)//显示 数据库中存在的所有记录
{
vqyID= m_pRecordset->GetCollect("企业编号");

    comzl[i].m_vqyID= (LPCTSTR)(_bstr_t)vqyID;    
            
            vdwName = m_pRecordset->GetCollect("企业名称");
                   comzl[i].m_vdwName= (LPCTSTR)(_bstr_t)vdwName;
         }
        =0;
}

解决方案 »

  1.   

     m_pRecordset->Delete(adAffectCurrent);//(删除数据成功,表中这条记录不见了) 
    后面加一句:
    m_pRecordset->Update();
      

  2.   

    楼上正解。
      _RecordSet的删除,相当于只是在内存中删除,并没有真正从DB中删除。
      
      

  3.   

    一楼的方法不行啊,我按照你说的去做结果在添加的m_pRecordset->Update(); 这一句出现断言了。不知道这个是什么原因啊??高手呢??跑那边去了啊 ?
      

  4.   

    Delete()方法之后不可以调用Update()的,
    AddNew(),Edit()之后才可以调用Update();
      

  5.   

    http://download.csdn.net/source/1070271
    这里面有对数据库操作的例子!很简单的!建议楼主看看!
      

  6.   

    m_pRecordset->GetCollect()
    你的Recordset对象是用的哪个类啊?
      

  7.   

    我一边直接用sql语句操作数据库。
      

  8.   

    _RecordsetPtr m_pRecordset;
    就是在头文件里面这么定义的啊!有问题吗?大家都是这么做的啊 ??
      

  9.   

    你的m_pRecordset是继承的哪个类的对象啊??
      

  10.   

    你用的是Ado吧,看看这个对你有帮助的
    http://topic.csdn.net/t/20051210/00/4450186.html