如何填充c#windows表单combobox?

如何从sql数据库填充一个combobox(带有id和名称列的学生表),显示文本代表学生的名字,combobox项目的值是该学生的id,当我得到的值时combobox我会得到id值

以下是您的重要属性。

ComboBox.DataSource属性

数据源可以是数据库,Web服务或稍后可用于生成数据绑定控件的对象。 设置DataSource属性后,无法修改items集合。

ComboBox.DisplayMember属性

一个String,指定DataSource属性指定的集合中包含的对象属性的名称。 默认值为空字符串(“”)。

ComboBox.ValueMember属性

一个String,表示DataSource属性指定的集合中包含的对象属性的名称。 默认值为空字符串(“”)。

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 

如果您想以编程方式添加项目,这是一种方法。

 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)); 

有很多方法可以做到这一点。

如何:从Windows窗体combobox中添加和删除项目

ComboBox.Items属性

首先,您需要弄清楚如何从数据库中获取数据,但我会假设您已经知道或打算就此提出另一个问题。 从那里,你最好的办法是将一些集合绑定到ComboBox 。 以下是使用DataSet执行此操作的示例。 您还可以绑定到List或其他IEnumerable ,如果您要使用LINQ来获取数据,这将更有意义。 这里有关于将List绑定到ComboBox也许您可以告诉我们您打算如何获取数据,以便我们可以为您提供更加量身定制的答案?