在线求救,两天了,记录集一直取不出数据!
[code=C/C++][/code]
ADOConn m_ado;
m_ado.OnInitADOConn ();
CString sql;
CString str0,str1,str2,str3,str4,str5,str6,str7;
CString month ;
m_monthDetail.GetWindowTextA(month);//获取列表框选择的年月
int row = 0;
/*初始化列表框*/
m_listDetail.InsertColumn(0,"状态类型",LVCFMT_LEFT,50,0);
m_listDetail.InsertColumn(1,"使用地点",LVCFMT_LEFT,50,1);
m_listDetail.InsertColumn(2,"时长(秒)",LVCFMT_LEFT,50,2);
m_listDetail.InsertColumn(3,"基本收费流量(K)",LVCFMT_LEFT,50,3);
m_listDetail.InsertColumn(4,"基本费用(元)",LVCFMT_LEFT,50,4);
m_listDetail.InsertColumn(5,"套餐费(元)",LVCFMT_LEFT,50,5);
m_listDetail.InsertColumn(6,"作用套餐",LVCFMT_LEFT,50,6);
m_listDetail.InsertColumn(7,"总费用(元)",LVCFMT_LEFT,50,7);
sql.Format("select * from gprs where 用户名 = '%s' and 开始时间 like '%s*' ",m_globalPhone,month);
/*对access取数据,单步调试复制这sql语句在数据库里能正常执行,没有任何问题*/
row = 0;
m_ado.GetRecordSet(_bstr_t(sql));
try
{
while( !m_ado.m_pRs ->adoEOF )//问题就在这:程序执行到这,不进入while循环,即执行sql语句取数据为空???
{
m_listDetail.InsertItem(row,"");
str0 = (char*)(_bstr_t)m_ado.m_pRs ->GetCollect("状态类型");
str1 = (char*)(_bstr_t)m_ado.m_pRs ->GetCollect("使用地点");
str2 = (char*)(_bstr_t)m_ado.m_pRs ->GetCollect("时长(秒)");
str3 = (char*)(_bstr_t)m_ado.m_pRs ->GetCollect("基本收费流量(K)");
str4 = (char*)(_bstr_t)m_ado.m_pRs ->GetCollect("基本费用(元)");
str5 = (char*)(_bstr_t)m_ado.m_pRs ->GetCollect("套餐费(元)");
str6 = (char*)(_bstr_t)m_ado.m_pRs ->GetCollect("作用套餐");
str7 = (char*)(_bstr_t)m_ado.m_pRs ->GetCollect("总费用(元)");
m_listDetail.SetItemText(row,0,str0);
m_listDetail.SetItemText(row,1,str1);
m_listDetail.SetItemText(row,2,str2);
m_listDetail.SetItemText(row,3,str3);
m_listDetail.SetItemText(row,4,str4);
m_listDetail.SetItemText(row,5,str5);
m_listDetail.SetItemText(row,6,str6);
m_listDetail.SetItemText(row,7,str7);
row++;
m_ado.m_pRs ->MoveNext ();
}
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
}
m_ado.CloseRecordset ();
m_ado.ExitConn ();
[解决办法]
可以单步看一看数据库的连接状态之类的 多给一点调试信息 这样别人也能快一点解决问题
[解决办法]
数据库操作有问题...
m_ado.GetRecordSet(_bstr_t(sql));
这句话可能有问题.. 看下你具体数据库操作代码看看..