web-dev-qa-db-fra.com

Comment remplir la combobox Windows Forms?

Comment puis-je remplir une zone de liste déroulante à partir de la base de données SQL (table des étudiants avec id et colonnes de nom), le texte affiché représente le nom d'un étudiant et la valeur de l'élément de la zone de liste déroulante est l'ID de cet étudiant que lorsque j'obtiens la valeur de la combobox j'obtiendrai la valeur id

14
Amer

Voici les propriétés importantes pour vous.

propriété ComboBox.DataSource

Une source de données peut être une base de données, un service Web ou un objet qui peut ensuite être utilisé pour générer des contrôles liés aux données. Lorsque la propriété DataSource est définie, la collection d'éléments ne peut pas être modifiée.

propriété ComboBox.DisplayMember

Une chaîne spécifiant le nom d'une propriété d'objet contenue dans la collection spécifiée par la propriété DataSource. La valeur par défaut est une chaîne vide ("").

propriété ComboBox.ValueMember

Une chaîne représentant le nom d'une propriété d'objet contenue dans la collection spécifiée par la propriété DataSource. La valeur par défaut est une chaîne vide ("").

DataTable dataTable = GetDataTable("Select * from Student"); // You have to implement the ways to retrieve data from the database.
comboBox1.Datasource = dataTable;
comboBox1.DisplayMember = StudentName; // Column Name
comboBox1.ValueMember = StuentId;  // Column Name

Voici une façon si vous souhaitez ajouter des éléments par programmation.

private class Item 
{
      public string _Name;
      public int _Id

      public Item(string name, int id) 
      {
          _Name = name; 
          _Id = id;
      }

      public string Name
      {
          get { return _Name; }
          set { _Name = value; }
      }

      public string Id
      {
          get { return _Id; }
          set { _Id = value; }
      }
}   

comboBox1.DisplayMember = "Name";
comboBox1.ValueMember = "Id";

comboBox1.Items.Add(new Item("Student 1", 1));
comboBox1.Items.Add(new Item("Student 2", 2));
comboBox1.Items.Add(new Item("Student 3", 3));

Il existe différentes façons de procéder.

Comment: ajouter et supprimer des éléments d'une zone de liste déroulante Windows Forms

propriété ComboBox.Items

26
CharithJ

Tout d'abord, vous devez comprendre comment vous allez récupérer les données de la base de données, mais je suppose que vous le savez ou que vous avez l'intention de poser une autre question à ce sujet. De là, votre meilleur pari est de lier une collection au ComboBox. Ici est un exemple de faire cela avec un DataSet. Vous pouvez également vous lier à List<T> ou autre IEnumerable<T>, ce qui aurait plus de sens si vous allez utiliser LINQ pour accéder aux données. Ici est une question ici sur SO sur la liaison d'un List à un ComboBox Peut-être pourriez-vous nous dire comment vous comptez obtenir aux données afin que nous puissions vous donner une réponse plus personnalisée?

3
Zannjaminderson