我写的一个程序是往数据库里添加内容记录。先打开一个数据库,再往里插入记录。本来运行好好的。后来我把数据库记录全删了,再打开数据库填写记录的时候,就出现Runtime Error!错误。我调试了一下,是在这句出错。
m_pRecordset->MoveFirst();
这应该怎么修改呢?

解决方案 »

  1.   

    if(!m_pRecordset->BOF)
    m_pRecordset->MoveFirst();
    else
    {
    AfxMessageBox("表内数据为空");
    return;
    }
      

  2.   

    应该加一个判断是否为空的语句
    if(m_pRs->EndOfFile != VARIANT_TRUE)
    m_pRs->MoveFirst();
      

  3.   

    也可以先判断一下表里的数据是否为空,如果不为空才MoveFirst
      

  4.   

    if(!m_pRecordset->EOF())
    m_pRecordset->MoveFirst();
    else
    {
    AfxMessageBox("表内数据为空");
    return;
    }
      

  5.   

    这我知道了,可是我不能让程序直接
    AfxMessageBox("表内数据为空");就 
    return; 
    我还是要往里继续增加数据记录的,这该怎么弄
      

  6.   

    if(!m_pRecordset->EOF()) 
    {
      m_pRecordset->MoveFirst();
      //加载数据
    }
    //不进行操作 
      

  7.   

    if(!m_pRecordset->EOF()) 
    m_pRecordset->MoveFirst(); 
    //下面添加记录
    楼主是不是要添加记录到头部?
      

  8.   

    while(!m_pRecordset->EOF()) 

      //加载数据 
      m_pRecordset->MoveNext(); 
      

  9.   


    那就这样就可以了:if(!m_pRecordset->EOF()) 
    m_pRecordset->MoveFirst(); 
    //下面insert记录 
      

  10.   

    m_pRecordset=GetRecordSet((_bstr_t)str_sql);
    _variant_t v_content;
    v_content=m_pRecordset->GetCollect("D_CONTENT");
    if(v_content.vt!=VT_NULL)              
    pbBuff=(TCHAR*)_bstr_t(v_content);
           else
    没有记录有插入新记录了
      

  11.   

    哦。明白了。插入代码如下:
    ("insert into wz(num) values('%d')",  "1"); 
    num是数字数据类型,我想把1赋给它,结果不是1.这个应该怎么写? 
      

  12.   

    "insert into wz(num) values(%d)",  1); 
      

  13.   

    直接"insert into wz(num) values(1)"