gzrjzcx 2016-06-12 17:08 采纳率: 0%
浏览 1542

ado连接sql时,建立查询有问题,m_pRecordset里面有数据但是查询不到

int i = dlg->m_pRecordset->GetRecordCount();
if (dlg->m_pRecordset->GetRecordCount() != 0) //表中有记录
{

try{
dlg->v_Team_no = dlg->m_pRecordset->GetCollect("Team_no");
dlg->v_Team_Cname = dlg->m_pRecordset->GetCollect("Team_Cname");
dlg->v_Team_home = dlg->m_pRecordset->GetCollect("Team_home");
dlg->v_Team_coach = dlg->m_pRecordset->GetCollect("Team_coach");
}
catch (_com_error& e)
{
AfxMessageBox(e.Description());
}

nItem=dlg->m_userlist.InsertItem(0xffff,(_bstr_t)dlg->v_Team_no);
dlg->m_userlist.SetItem(nItem,1,1,(_bstr_t)dlg->v_Team_Cname,NULL,0,0,0);
dlg->m_userlist.SetItem(nItem,2,1,(_bstr_t)dlg->v_Team_home,NULL,0,0,0);
dlg->m_userlist.SetItem(nItem,3,1,(_bstr_t)dlg->v_Team_coach,NULL,0,0,0);
dlg->m_pRecordset->MoveNext();
}
{
AfxMessageBox("没有查找到该队伍的信息!");
return;
}

    这是我的代码,因为查询的是char类型的,sql语句是查询为'T001',语句在sql server里面可以查询得到结果,但是在mfc里面就报错,检测结果说是BOF或者EOF中有一个是真,或者该条记录已经删除,但是用调试可以看到i是21说明记录集里面应该是有21条记录的,不为空呀。
    但是调试执行到dlg->v_Team_no = dlg->m_pRecordset->GetCollect("Team_no");这个语句就报错了。
    求问是为什么呀 
    如果是sql语句问题,我把这个语句复制到sqlserver里面,在sql server里面应该也不能查询呀,但结果是可以查询。
  • 写回答

3条回答 默认 最新

  • threenewbee 2016-06-12 18:10
    关注

    dlg->m_pRecordset->GetRecordCount()
    这个在单向游标下获得的count是不准的,应该用 recordset.eof 和 recordset.bof 判断

    评论

报告相同问题?

悬赏问题

  • ¥15 怀疑手机被监控,请问怎么解决和防止
  • ¥15 Qt下使用tcp获取数据的详细操作
  • ¥15 idea右下角设置编码是灰色的
  • ¥15 全志H618ROM新增分区
  • ¥15 在grasshopper里DrawViewportWires更改预览后,禁用电池仍然显示
  • ¥15 NAO机器人的录音程序保存问题
  • ¥15 C#读写EXCEL文件,不同编译
  • ¥15 MapReduce结果输出到HBase,一直连接不上MySQL
  • ¥15 扩散模型sd.webui使用时报错“Nonetype”
  • ¥15 stm32流水灯+呼吸灯+外部中断按键