如何填充c#windows窗体组合框?

如何填充c#windows窗体组合框?,c#,.net,winforms,combobox,C#,.net,Winforms,Combobox,如何从sql数据库(带有id和name列的students表)填充组合框,显示文本表示学生的姓名,combobox项的值是该学生的id,当我获取combobox值时,我将获取id值。首先,您需要弄清楚如何从数据库中获取数据,但我想你要么知道,要么打算问另一个问题。从这里开始,您最好将一些集合绑定到组合框。是使用数据集执行此操作的示例。您还可以绑定到列表或其他IEnumerable,如果要使用LINQ获取数据,这将更有意义。这里有一个关于将列表绑定到组合框的问题,或许您可以告诉我们您打算如何获取数

如何从sql数据库(带有id和name列的students表)填充组合框,显示文本表示学生的姓名,combobox项的值是该学生的id,当我获取combobox值时,我将获取id值。首先,您需要弄清楚如何从数据库中获取数据,但我想你要么知道,要么打算问另一个问题。从这里开始,您最好将一些集合绑定到
组合框
。是使用
数据集
执行此操作的示例。您还可以绑定到
列表
或其他
IEnumerable
,如果要使用LINQ获取数据,这将更有意义。这里有一个关于将
列表
绑定到
组合框
的问题,或许您可以告诉我们您打算如何获取数据,以便我们可以为您提供更为定制的答案?

以下是您的重要属性

数据源可以是数据库、Web服务或可以 稍后将用于生成数据绑定控件。当数据源 属性,则无法修改items集合

指定包含的对象属性名称的字符串 在由DataSource属性指定的集合中。默认值是 空字符串(“”)

表示包含的对象属性名称的字符串 在由DataSource属性指定的集合中。默认值是 空字符串(“”)

如果您想以编程方式添加项,这里有一种方法

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));
有多种方法可以做到这一点


在上面的示例中,您需要将“{get;set;}”添加到项目类属性“Name”和“Id”中,否则组合框将只显示对象类型。可能重复的可能重复的可能重复的可能重复的
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));