最近学习MFC编程,与access打交道,初步想实现有表中读取数据中的内容,采用SetItemText函数,原来代码为:
while(!m_recordset.IsEOF()) { int temp=0; m_recordset.GetFieldValue(temp,varValue); m_content.SetItemText(i_,0,varValue.m_pstring->GetBuffer(1)); /* if(!m_content.SetItemText(i,0,varValue.m_pstring->GetBuffer(1))) MessageBox("插入数据失败!"); */ m_recordset.GetFieldValue(1,varValue); m_content.SetItemText(i_,1,varValue.m_pstring->GetBuffer(1)); m_recordset.MoveNext(); i_++; }
但在clistctr控件中的m_content.InsertColumn()又能显示,调试跟踪,可以读取到数据库中的字符串,但就是数据无法显示,后来在网上查了许多资料才知道:每一列的第一个数据要用InsertItem()插入,修改代码如下,实现了数据显示功能。
int i_=0; while(!m_recordset.IsEOF()) { int temp=0; m_recordset.GetFieldValue(temp,varValue); // m_content.SetItemText(i_,0,varValue.m_pstring->GetBuffer(1)); m_content.InsertItem(i_,varValue.m_pstring->GetBuffer(1)); /* if(!m_content.SetItemText(i,0,varValue.m_pstring->GetBuffer(1))) MessageBox("插入数据失败!"); */ m_recordset.GetFieldValue(1,varValue); m_content.SetItemText(i_,1,varValue.m_pstring->GetBuffer(1)); m_recordset.MoveNext(); i_++; }
另外如果InsertColumn()中的内容也没显示出来,即列表框中空白什么都没有,那么先把clistctr的VIEW属性设置为report。