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 判断

    评论

报告相同问题?

悬赏问题

  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊