没有重复值的组合框 - Visual Studio 2013 C++ 和 MySql

comboBox without duplicated values - Visual Studio 2013 C++ and MySql

我有一个包含 visual studio windows 形式的 C++ 连接到 mysql 的 0 错误程序。一切正常!

问题是:我有一个组合框,它从我想要的列中获取信息,但该列不是主键,因此它有重复的或更多的值。

如何在组合框中只显示每个值的一个值? 全部 !

组合框代码:

private: void Fillcombo(void) {

         String^ constring = L"datasource=127.0.0.1;port=3306;username=root;password=12345";
         MySqlConnection^ conDataBase = gcnew MySqlConnection(constring);
         MySqlCommand^ cmdDataBase = gcnew MySqlCommand("select * from batcel.maq_corte;", conDataBase);

         MySqlDataReader^ myReader;
         try{
             conDataBase->Open();
             myReader = cmdDataBase->ExecuteReader();

            while (myReader->Read()){
                String^vResponsavel;
                vResponsavel = myReader->GetString("id_responsavel");
                comboBox2->Items->Add(vResponsavel);

我不太熟悉 c++ cli 语法,但我可以在这里为您提供解决方案。

您可以使用列表容器来存储列中的值。但是在插入一个值之前先检查该值是否存在于列表中。如果没有插入值并将其显示在组合框中。

例如..

//This is just a pseudo code
list(string) somelist;

while (read){
       String value;
       value= read->GetString("id_responsavel");
      if(! somelist.find(value)
      {
         somelist.insert(value);
         combobox.add(value);
      }

或者你可以修改SQL请求:

select * 来自 batcel.maq_corte 按 id_responsavel

分组