MFC里面记录集写CListCtrl的时候出现问题,插入行正常,但是不能在行里写数据是什么问题?
这个是在OnInitDialog里面写的db.ConnDB();//打开连接db.ExecuteQuery(str);//执行str语句inti=0;while(!db....
这个是在OnInitDialog里面写的
db.ConnDB();//打开连接
db.ExecuteQuery(str);//执行str语句
int i=0;
while(!db.m_recordset->adoEOF)
{
m_list.InsertItem(i++,(_bstr_t)db.m_recordset->GetCollect("id"));//这个是可以执行的,结果也正常
m_list.SetItemText(i++,1,(_bstr_t)db.m_recordset->GetCollect("name"));//这句不执行
m_list.SetItemText(i++,1,"张三");/将每行第二个元素都设置为这个名字,这句也不执行
db.m_recordset->MoveNext();
}
但是在这个循环外面执行下面这几条的时候就是正常的
m_list.InsertItem(0,"2012112105");
m_list.SetItemText(0,1,"张三");
m_list.SetItemText(0,2,"96");
请问这是为什么? 展开
db.ConnDB();//打开连接
db.ExecuteQuery(str);//执行str语句
int i=0;
while(!db.m_recordset->adoEOF)
{
m_list.InsertItem(i++,(_bstr_t)db.m_recordset->GetCollect("id"));//这个是可以执行的,结果也正常
m_list.SetItemText(i++,1,(_bstr_t)db.m_recordset->GetCollect("name"));//这句不执行
m_list.SetItemText(i++,1,"张三");/将每行第二个元素都设置为这个名字,这句也不执行
db.m_recordset->MoveNext();
}
但是在这个循环外面执行下面这几条的时候就是正常的
m_list.InsertItem(0,"2012112105");
m_list.SetItemText(0,1,"张三");
m_list.SetItemText(0,2,"96");
请问这是为什么? 展开
2个回答
展开全部
我今天也遇到同样的问题,楼主,你解决了吗,求解
int i = 0;
for (POSITION position = pList->GetHeadPosition(); position != NULL; i++)
{
CDeviceData deviceData = pList->GetNext(position);
m_list.InsertItem(i, deviceData.m_strDeviceName);
m_list.SetItemText(i, 1, deviceData.m_strDriverVersion);这句有少部分执行了
m_list.SetItemText(i, 2, "Andox");//这句没执行
}
大虾求解啊啊啊啊啊啊啊啊啊
我知道了,是因为选择排序了LVS_SORTASCENDING,所以第一列插入可以,但是第二列插入的时候,那个i并不和第一列是对应的.另外好像总是在第一行插入的,不知道怎么回事.
int i = 0;
for (POSITION position = pList->GetHeadPosition(); position != NULL; i++)
{
CDeviceData deviceData = pList->GetNext(position);
m_list.InsertItem(i, deviceData.m_strDeviceName);
m_list.SetItemText(i, 1, deviceData.m_strDriverVersion);这句有少部分执行了
m_list.SetItemText(i, 2, "Andox");//这句没执行
}
大虾求解啊啊啊啊啊啊啊啊啊
我知道了,是因为选择排序了LVS_SORTASCENDING,所以第一列插入可以,但是第二列插入的时候,那个i并不和第一列是对应的.另外好像总是在第一行插入的,不知道怎么回事.
追问
解决了。我的用FOR语句是可用的,WHILE语句就不行,不知道为什么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询