关于ADO通过CRecordset读取数据的问题

apachezq 2003-08-20 12:42:20
以下代码是以ADO方式,连接数据库,然后讲数据集中的数据读出的程序,如果正常的话,因该才COMBOBOX中显示记录数的,但是现在好象读不出数据,所以COMBOBOX中是空的。
CDatabase db;
db.OpenEx( NULL, CDatabase::forceOdbcDialog );
CRecordset rs( &db );
rs.Open( CRecordset::forwardOnly,_T( "SELECT * FROM jobs" ) );
CDBVariant varValue;
short nFields = rs.GetODBCFieldCount( );
while( !rs.IsEOF( ) )
{
for( short index = 0; index < nFields; index++ )
{
rs.GetFieldValue( index, varValue );
// do something with varValue

}
rs.MoveNext( );
}
m_combo.AddString(LPCTSTR(nFields));//COMBOBOX显示
...全文
113 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Akagg 2003-08-21
  • 打赏
  • 举报
回复
是的,最后一句也是错的,(第一次没看到)
demon007 2003-08-21
  • 打赏
  • 举报
回复
学习
awant2k 2003-08-21
  • 打赏
  • 举报
回复
在while(!rs.IsEOF( ) ) 之前调用 rs.MoveFirst();

m_combo.AddString(LPCTSTR(nFields));错,应该改为

{
CString cs;
cs.Formart("%d",nFields);
m_combo.AddString(cs, cs.GetBuffer(0));
cs.ReleaseBuffer();
}
Akagg 2003-08-20
  • 打赏
  • 举报
回复
将short nFields = rs.GetODBCFieldCount( );
改为
short nField=0;
if(rs.GetRecordCount()!=0)
rs.MoveFirst();
试试看
FBugFramework 2003-08-20
  • 打赏
  • 举报
回复
CDatabase::forceOdbcDialog:

forceOdbcDialog 是不是 CDatabase 中的一个静态成员变量啊?(绝顶菜鸟)

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧