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
Voici les propriétés importantes pour vous.
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
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?