本人用VC++做了一个对话框,上面做了一个按钮,又做了一个显示ACCESS数据库的对话框,现在想点击这个按钮,可以实现把输入的新的数据保存到数据库中并显示出来。本人做了一段代码,编译时没有报错,可一点按钮,就出现“应用程序错误”的警告。可编译时并没有报错呀,谁能帮我解答一下,小弟在此谢谢大家了
if(!m_set2->CanAppend())
{MessageBox("");return;}
    m_set2->AddNew();MessageBox("");
m_set2->MoveFirst();
m_set2->m_D0=50;
if(m_set2->CanUpdate())
m_set2->Update();
其中m_set2是自己定义的数据库CRecordset类,请大家帮忙会诊一下,谢谢了

解决方案 »

  1.   

    把m_set2->MoveFirst();这句去掉。
      

  2.   

    在写入数据前有没有UpdateData(true)?
      

  3.   

    TRY{
    先将多余的去掉:
    m_set2->Open();
    }
    CATCH(CDBException e)
    {
    return;  //打不开数据库,返回
    }m_set2->AddNew();
    m_set2->m_D0=50;
    m_set2->Update();
      

  4.   

    有一句位置错了,应该这样:
    //先将多余的去掉:
    TRY{
    m_set2->Open();
    }
    CATCH(CDBException e)
    {
    return;  //打不开数据库,返回
    }m_set2->AddNew();
    m_set2->m_D0=50;
    m_set2->Update();
      

  5.   

    1)你的m_set2可能是一个空指针
    2)数据库没有连上
      

  6.   

    用DEBUG跟踪一下,看问题出在那儿。是AddNew还是Update?
      

  7.   

    用我的代码试试吧!
    if(m_set2->IsOpen())
      m_set2->Close();
    m_set2->Open();
    if(!m_set2->CanAppend())
      {MessageBox("");return;}
    m_set2->AddNew();
    ...
      

  8.   

    你调试的时候是不是出现hwnd=0x00000000?
    这个问题我就经常出现,是窗口句柄不能为NULL的问题。