MFC中怎么获得数据库的列名?MFC 用ADO连接SQL SERVER

迷之程序员 2017-08-08 08:48:09
如题,现在只会在已经知道列名的时候获得列中的值,怎样才能自动获得列名呢,或者自动获得列中的值而不用手动输入列名?
while(!m_pRecordset->adoEOF)
{
m_list.InsertItem(i, "");
m_list.SetItemText(i, 0, (char*)(_bstr_t)m_pRecordset->GetCollect("QQ"));
m_list.SetItemText(i, 1, (char*)(_bstr_t)m_pRecordset->GetCollect("WW"));
m_list.SetItemText(i, 2, (char*)(_bstr_t)m_pRecordset->GetCollect("EE"));
m_list.SetItemText(i, 3, (char*)(_bstr_t)m_pRecordset->GetCollect("EE"));

m_pRecordset->MoveNext();
i++;
}
...全文
457 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_36634306 2017-08-09
  • 打赏
  • 举报
回复
GetCollect(_variant_t(temp));
引用 5 楼 baidu_39486224 的回复:
while(!m_pRecordset->adoEOF) { m_list.InsertItem(i, ""); for(i=0;i<16;i++) { CString temp=(LPCTSTR)(_bstr_t)m_pRecordset->Fields->GetItem(_variant_t((long)i))->Name; m_list.SetItemText(i, 0, (char*)(_bstr_t)m_pRecordset->GetCollect(temp)); m_pRecordset->MoveNext(); } }就是这个实验的语句,一直报错 error C2664: 'GetCollect' : cannot convert parameter 1 from 'class CString' to 'const class _variant_t &'
zwfgdlc 2017-08-09
  • 打赏
  • 举报
回复
m_pRecordset->GetCollect((long)0);//第一列
m_pRecordset->GetCollect((long)1);//第二列
赵4老师 2017-08-09
  • 打赏
  • 举报
回复
字符串那些事儿:BSTR-LPSTR-LPWSTR-CString-VARIANT-COleVariant-_variant_t-CComBSTR-_bstr_t http://blog.csdn.net/pizi0475/archive/2010/03/04/5346708.aspx
赵4老师 2017-08-08
  • 打赏
  • 举报
回复
GetCollect(0~FieldNum-1) ?
迷之程序员 2017-08-08
  • 打赏
  • 举报
回复
while(!m_pRecordset->adoEOF) { m_list.InsertItem(i, ""); for(i=0;i<16;i++) { CString temp=(LPCTSTR)(_bstr_t)m_pRecordset->Fields->GetItem(_variant_t((long)i))->Name; m_list.SetItemText(i, 0, (char*)(_bstr_t)m_pRecordset->GetCollect(temp)); m_pRecordset->MoveNext(); } }就是这个实验的语句,一直报错 error C2664: 'GetCollect' : cannot convert parameter 1 from 'class CString' to 'const class _variant_t &'
zgl7903 2017-08-08
  • 打赏
  • 举报
回复
参数INT 类型改为 LONG 型, 或者强制转换(LONG)
迷之程序员 2017-08-08
  • 打赏
  • 举报
回复
引用 2 楼 qq_36634306 的回复:
取得记录集第i列列名,从0开始 Cstring temp=(LPCTSTR)(_bstr_t)m_pRecordset->Fields->GetItem(_variant_t((long)i))->Name; 或者你别指定列名,直接指定第几列 m_pRecordset->GetCollect(_variant_t((long)i);
请问 这里的temp 这是什么格式,怎么转化成这里能用的呢?要转化成string吗 m_list.SetItemText(i, 0, (char*)(_bstr_t)m_pRecordset->GetCollect('temp')); 我这里获取temp作为列名来获得值插入列表,但是报错cannot convert parameter 1 from 'const int' to 'const class _variant_t &',本人初学者,还望指教
qq_36634306 2017-08-08
  • 打赏
  • 举报
回复 1
取得记录集第i列列名,从0开始 Cstring temp=(LPCTSTR)(_bstr_t)m_pRecordset->Fields->GetItem(_variant_t((long)i))->Name; 或者你别指定列名,直接指定第几列 m_pRecordset->GetCollect(_variant_t((long)i);

4,011

社区成员

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

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