最近新学的VC 用MFC做个系统,其中用下拉列表项中显示数据库字段~然后在CSDN找到了个代码
CRecordSet   m_Set;   
  CString   strID;   
  m_Set.Open();   
  m_Set.MoveFirst();   
  while(!m_Set.IsEOF())   
  {   
      strID   =   m_Set.ID;   
      m_Com.AddString(strID);   
      m_Set.MoveNext();   
  }   
  m_Set.Close();
经过修改后可以用了`~但出现了个问题~下拉列表中的选项大量重复,但不会找解决的方法`~麻烦大虾帮忙看下
数据库有4个表`其中三个表有KCH字段
修改后
  CKcglSet   m_Set;   
  CString   kch;
  m_Set.Open();
  m_Set.MoveFirst();   
  while(!m_Set.IsEOF())   
  {   
      kch  =   m_Set.m_kch;
      m_kk.AddString(kch);
      m_Set.MoveNext();
  }   
  m_Set.Close();

解决方案 »

  1.   

    这代码是把你记录集m_set中的记录字段添加到下拉列表中,重复说明你的字段有重复值。要不重复的话你可判断下拉列表中是不是已经存在将要插入的字段,如果是就不插入。这就行了。
    用m_kk.FindStringExact(0,kch)!==CB_RR; 表示找到kch存在列表项中
      

  2.   

    m_kk.FindStringExact(0,kch)!==CB_RR;不会用..
    CB_RR怎么改?
    我这样弄了下`~但还是有重复哦`
     while(!m_Set.IsEOF())   
     {   
     if(m_kcm.FindStringExact(0,kcm)==kcm)
     {
     m_Set.MoveNext();
         kcm=m_Set.m_kcm;
     }
      else
      {
      m_Set.MoveNext();
         //   kch  =   m_Set.m_kch;
      kcm  =   m_Set.m_kcm;
            //m_kk.AddString(kch);
      m_kcm.AddString(kcm);
            
      }
     } 
      

  3.   

    你的kcm是什么啊??把
    if(m_kcm.FindStringExact(0,kcm)==kcm)
    改成:
    if(!m_kcm.FindStringExact(0,kcm))
      

  4.   


    我有4个表,之前用字段KCH(有三个表有这个字段,并且有重复)显示的时候选项中出现了大量重复,现在我用KCM字段来试(只有一个表有,且没有重复值)但一样有大量重复~好糊涂`~>_<