为何数据不能写入ListCtrl中

dxs_csdn 2003-06-02 01:57:09
代码如下:
while(!rst.IsEOF())
{
pListCtrl->InsertItem(nTotalCount,"strValue");
for(int i=0; i<nFields; i++)
{
rst.GetFieldValue((short)i,strValue);
pListCtrl->SetItemText(nTotalCount,i,strValue);
}
nTotalCount ++;
nCount ++;
rst.MoveNext();
}
在执行了上面的代码后,只有最后一行的数据可以正确写入ListCtrl,而其它除了第一列为“strValue”外,都为空。
请问这是怎么回事?
...全文
61 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingtsui 2003-06-02
  • 打赏
  • 举报
回复
因为InsertItem的时候,用0作参数的话是插在最前面的,所以是逆序的
如果不想逆序,就用GetCount做插入参数,就会插在最后了

while(!rst.IsEOF())
{
int nIndex = pListCtrl->InsertItem(pListCtrl->GetCount(),"strValue");
if(nIndex != -1)
{
for(int i=1; i<nFields; i++)
{
rst.GetFieldValue((short)i,strValue);
pListCtrl->SetItemText(nIndex,i,strValue);
}
}
nCount ++;
rst.MoveNext();
}
dxs_csdn 2003-06-02
  • 打赏
  • 举报
回复
使用jnxulei(石头)和kingtsui(老农民)的方法,程序能够成功执行,但是数据的排列顺序被倒过来了。请问为什么我的方法不行?
feiniaoliang 2003-06-02
  • 打赏
  • 举报
回复
看看你的rst.GetFieldValue((short)i,strValue);
这句是否成功!!加个MessageBox(strValue);看看strValue里面是否有值再说!!
kingtsui 2003-06-02
  • 打赏
  • 举报
回复
while之前nTotalCount赋0了没有
而且,pListCtrl->SetItemText(nTotalCount,i,strValue);这里第一个参数应该试用上一句InsertItem的返回值
丁淇石头 2003-06-02
  • 打赏
  • 举报
回复
试试这个:
while(!rst.IsEOF())
{
pListCtrl->InsertItem(0,"strValue");
for(int i=1; i<nFields; i++)
{
rst.GetFieldValue((short)i,strValue);
pListCtrl->SetItemText(0,i,strValue);
}
nCount ++;
rst.MoveNext();
}
dxs_csdn 2003-06-02
  • 打赏
  • 举报
回复
我用for(int i=1; i<nFields; i++)
试过了,但也不行。
gai 2003-06-02
  • 打赏
  • 举报
回复
若数据从第二列插入,则i的初值应为1
tserpent 2003-06-02
  • 打赏
  • 举报
回复
应该是:
for(int i=1; i<nFields; i++)

15,979

社区成员

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

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