代码如下:把数据库的数据显示到列表框里
m_ListCrtl.DeleteAllItems(); //删除所有的子项
try
{
m_pRecordset = theApp.m_pConnection->Execute((_bstr_t)sql, NULL, adCmdText);
int i = 0;
while(!m_pRecordset->adoEOF)//记录没有到末尾
{
m_ListCrtl.InsertItem(i, (char*)_bstr_t(m_pRecordset->GetCollect(_variant_t((long)0))));
//当表里有一条记录时可得到(char*)_bstr_t(m_pRecordset->GetCollect(_variant_t((long)0)))为1
m_ListCrtl.SetItemText(i, 1, (char*)_bstr_t(m_pRecordset->GetCollect(_variant_t((long)1)))); //这个地方有错误 明明表里有数据可到这里说找不到。。。
m_ListCrtl.SetItemText(i, 2, (char*)_bstr_t(m_pRecordset->GetCollect(_variant_t((long)2))));
i++;
m_pRecordset->MoveNext();//移动到下一条记录
}
错误提示是:在对应所需名称或序数的集合中,为找到项目。。。。
我测试改为:vr=m_pRecordset->GetCollect(_variant_t((long)0)));
if(vr.vt != VT_NULL)
strName = (LPCSTR)_bstr_t(vr);
MessageBox(strName);
i++;
m_pRecordset->MoveNext();//移动到下一条记录
数据表里有一条记录时MessageBox显示为:1
然后我把_variant_t((long)0改成_variant_t((long)1就说记录里么有。。
不是应该把第二列的数据取出来么。。。。
哪里错了,那个高手知道请帮助我,谢谢啊!