首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

本世纪最大灵异事件。ODBC读数据库解决办法

2012-01-19 
本世纪最大灵异事件。ODBC读数据库环境:winxp+vc6.0方式:ODBC 读ACCESS//LIST控件显示FOLK表内数据m_ctrLis

本世纪最大灵异事件。ODBC读数据库
环境:winxp + vc6.0
方式:ODBC 读ACCESS

//LIST控件显示FOLK表内数据
  m_ctrList.DeleteAllItems();
  m_ctrList.SetRedraw(FALSE);

  CString strSQL;
  UpdateData(TRUE);
  strSQL="select * from folk";
  if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
  {
  MessageBox("打开数据库失败!","数据库错误",MB_OK);
  return ;
  }  
  int i=0;
  while(!m_recordset.IsEOF())
  {
  m_ctrList.InsertItem(i++,m_recordset.m_folk);
  m_recordset.MoveNext();
  }
  m_recordset.Close();
  m_ctrList.SetRedraw(TRUE);


这段代码本来是很简单的,运行也正常。
我数据库里是:
汉族
满族
回族
苗族
...
傣族

但我在列表控件中显示出来的是:
汉族
满族
回族回族
苗族
...
傣族

为什么回族会出现两次啊。其他的族都没有啊。

我已经重新启动过机器了,还是一样。

我把数据库里的“回族”两个字删掉,把那一格数据变为空字符串。

列表控件显示为:
汉族
满族
回族
苗族
...
傣族


老天,我哪儿来的“回族”啊,我数据库里已经没有“回族”这两个字了。
它从哪儿能读出个“回族”来?

我把“回族”改成“未知族”。
列表控件显示为:
汉族
满族
未知族回族
苗族
...
傣族

我把LIST控件不用,改为用CAMBO控件显示。
显示出来的下拉列表照样是:
汉族
满族
未知族回族
苗族
...
傣族

//CAMBO下拉列表控件读数据代码
  CFolkSet FolkSet ;
  strSQL="select * from folk";
  if(!FolkSet.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
  {
  MessageBox("打开数据库失败!","数据库错误",MB_OK);

  }  
  while(!FolkSet.IsEOF())
  {
  m_ctrFolk.AddString(FolkSet.m_folk);
  FolkSet.MoveNext();
  }
  FolkSet.Close();


[解决办法]
m_ctrList.InsertItem(i++,m_recordset.m_folk);
这个m_ctrList是CListCtrl吗,如果是的话显然你的用法有问题啊?
InsertItem后,应该是SetItemText啊,比如
m_ctrList.InsertItem(1,"1");
m_ctrList.SetItemText(1,1,"张三");
m_ctrList.SetItemText(1,2,"18岁");
[解决办法]
如果你只有一个字段的话,请检查你的逻辑,还有你的m_recordset类,这是你自己封装的记录集类吧!
[解决办法]
可以换 ADO 访问数据库试试结果。。。

热点排行