2011-09-14 19 views
13

¿Cómo puedo llenar un cuadro combinado de la base de datos sql (tabla de estudiantes con ID y columnas de nombre), el texto de visualización representa el nombre de un estudiante y el valor del elemento de cuadro combinado es el ID de ese estudiante que cuando obtengo valor del cuadro combinado Obtendré el valor de identificación¿Cómo rellenar el cuadro combinado de formularios de C# windows?

+1

posible duplicado de [Rellenar un ComboBox utilizando C#] (http://stackoverflow.com/questions/2417960/populating-a-combobox-using-c-sharp) –

Respuesta

3

En primer lugar, debe averiguar cómo va a recuperar los datos del DB, pero supongo que o bien lo sabe o tiene la intención de hacer otra pregunta con respecto a eso. A partir de ahí, su mejor apuesta es vincular alguna colección al ComboBox. Here es un ejemplo de hacerlo con un DataSet. También puede enlazar a List<T> u otro IEnumerable<T>, lo que tendría más sentido si va a utilizar LINQ para obtener los datos. Here es una pregunta aquí en SO sobre la vinculación de un List a un ComboBox ¿Quizás podría decirnos cómo piensa obtener los datos para que podamos darle una respuesta más personalizada?

26

A continuación se detallan las propiedades importantes para usted.

ComboBox.DataSource Property

Una fuente de datos puede ser una base de datos, un servicio Web, o un objeto que luego puede usarse para generar controles enlazados a datos. Cuando se establece la propiedad DataSource , la colección de elementos no se puede modificar.

ComboBox.DisplayMember Property

una cadena que especifica el nombre de una propiedad de objeto que está contenida en la colección especificado por la propiedad DataSource. El valor predeterminado es una cadena vacía ("").

ComboBox.ValueMember Property

una cadena que representa el nombre de una propiedad de objeto que está contenida en la colección especificado por la propiedad DataSource. El valor predeterminado es una cadena vacía ("").

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 

Aquí es una manera si desea agregar elementos mediante programación.

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

Existen varias formas de hacerlo.

How to: Add and Remove Items from a Windows Forms ComboBox

ComboBox.Items Property

+1

En el ejemplo anterior necesita agregar "{get; set;}" a las propiedades de la clase Item "Nombre" e "Id"; de lo contrario, el cuadro combinado solo mostrará el tipo de objeto. – wavedrop

Cuestiones relacionadas