高手请帮忙:
        CStudent m_student;
m_student.Open();
m_student.Edit();
while(!m_student.IsEOF() && m_student.m_id!=(long)m_borrowerid/*m_borrowerid为一个UINT型变量*/)
{
m_student.MoveNext();
}
if(m_student.IsEOF())
{}
else
{
m_student.m_numberborrow++;
m_student.Update();//此处弹出错误说:更新或删除的企图失败了
}
        但是 如果所要找的记录正好是第一条记录时,就不会弹出错误,
 困惑阿。

解决方案 »

  1.   


    我查了查, 在他调用update()是抛出了一个异常CDBException*  可怎么处理呢?
      

  2.   

    m_student.MoveNext(); 这句后m_student的值改变了没有?
    还是应该m_student = m_student.MoveNext();
    没有用过,只是猜测。。
      

  3.   


    改变了阿,m_student.m_numberborrow++; 这就是阿
      

  4.   

    CStudent m_student; 
    m_student.Open(); 
    m_student.Edit(); 
    while(!m_student.IsEOF() && m_student.m_id!=(long)m_borrowerid/*m_borrowerid为一个UINT型变量*/) 

    m_student.MoveNext(); if(m_student.IsEOF()) 
    {} 
    else 

    m_student.m_numberborrow++; 
    m_student.Update();//此处弹出错误说:更新或删除的企图失败了 

    }
    那是不是应该这样呢?
      

  5.   

    我的意思就是m_student.m_numberborrow++;  也在while循环之中
      

  6.   

    少个=号
    while(!m_student.IsEOF() && m_student.m_id!=(long)m_borrowerid/*m_borrowerid为一个UINT型变量*/) 
      

  7.   

    记录往下走了阿,我有messagebox()检验了
      

  8.   

    那数据库连接和sql语句没有问题把?
    还有表中的不能为null的都写入了?
      

  9.   

    就是update()问题,
    它指向了这样一段异常代码
    TRY
    {
    #ifndef _AFX_NO_OCC_SUPPORT
    // special case for WM_DESTROY
    if ((nMsg == WM_DESTROY) && (pWnd->m_pCtrlCont != NULL))
    pWnd->m_pCtrlCont->OnUIActivate(NULL);
    #endif // special case for WM_INITDIALOG
    CRect rectOld;
    DWORD dwStyle = 0;
    if (nMsg == WM_INITDIALOG)
    _AfxPreInitDialog(pWnd, &rectOld, &dwStyle); // delegate to object's WindowProc
    lResult = pWnd->WindowProc(nMsg, wParam, lParam); // more special case for WM_INITDIALOG
    if (nMsg == WM_INITDIALOG)
    _AfxPostInitDialog(pWnd, rectOld, dwStyle);
    }
    CATCH_ALL(e)
    {
    lResult = AfxProcessWndProcException(e, &pThreadState->m_lastSentMsg);
    TRACE(traceAppMsg, 0, "Warning: Uncaught exception in WindowProc (returning %ld).\n",
    lResult);
    DELETE_EXCEPTION(e);
    }
      

  10.   

    m_numberborrow把数据库中这个字段设为自加的看看可以不如过还是不行,将m_student.m_numberborrow++; 
    m_student.Update();//此处弹出错误说:更新或删除的企图失败了 换成用sql语句来执行看看可不可以
      

  11.   

    对不起啊,不会在vc中用sql语句阿
      

  12.   

    m_student.m_numberborrow++;  
    m_student.SetFileValue(“列名”,”字符串”);
    m_student.Update();
    SetFileValue用这个函数处理下
    可能需要类型转换,你是一下把。
    呵呵,我也很菜。。
      

  13.   

    m_student.m_numberborrow++;  
    m_student.SetFileValue(“列名”,”字符串”);
    m_student.Update();
    SetFileValue用这个函数处理下
    可能需要类型转换,你是一下把。
    呵呵,我也很菜。。
      

  14.   

    m_student.m_numberborrow++;  
    m_student.SetFileValue(“列名”,”字符串”);
    m_student.Update();
    SetFileValue用这个函数处理下
    可能需要类型转换,你是一下把。
    呵呵,我也很菜。。
      

  15.   

    没有setfilevalue()这个方法阿。郁闷了。
      

  16.   

    如果不是第一条
    m_student.Update();之前的m_student.m_numberborrow++的值是正确的吗?
    第一条如果可以,那数据库应该就没问题,可能就是你程序上有问题把。
      

  17.   


     我把代码改的简单了
             CStudent m_student;
    m_student.Open();
    m_student.Edit();
            m_student.Movenext();
            m_student.Movenext();
            m_student.m_numberborrow++;
            m_student.update();
            还是会在update();这里出错!