Foros del Web » Programación para mayores de 30 ;) » .NET »

Llenar un ComboBox en Windows forms

Estas en el tema de Llenar un ComboBox en Windows forms en el foro de .NET en Foros del Web. Hola me gustaria saber como llenar un combo box en aplicaciones windows... pense q seria facil con la ayuda de un datasource (como en aplicaciones ...
  #1 (permalink)  
Antiguo 28/02/2008, 17:53
 
Fecha de Ingreso: noviembre-2006
Ubicación: Pasto
Mensajes: 154
Antigüedad: 17 años, 5 meses
Puntos: 1
Llenar un ComboBox en Windows forms

Hola me gustaria saber como llenar un combo box en aplicaciones windows... pense q seria facil con la ayuda de un datasource (como en aplicaciones web) pero no es asi :S alguien q me de un ejemplo por favor! Gracias!!!
  #2 (permalink)  
Antiguo 28/02/2008, 18:06
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Re: Llenar un ComboBox en Windows forms

es igual de facil solo q aca tienes un

DisplayMember y un ValueMember.

e aqui la equivalencia

DropDownList = ComboBox
DataTextField = DisplayMember
DataValueField = ValueMember

saludos
peter
  #3 (permalink)  
Antiguo 28/02/2008, 19:23
 
Fecha de Ingreso: noviembre-2006
Ubicación: Pasto
Mensajes: 154
Antigüedad: 17 años, 5 meses
Puntos: 1
Re: Llenar un ComboBox en Windows forms

pues la verdad yo lo hacia a travez de un sqldatasource el cual hacia la consulta y por medio de este llenaba el dropdownlist... para llenar la base da datos usaba el siguiente: pe:me.cbo_ciudad.selectedvalue ya q necesitaba enviar el valor de este y no el texto q contenia... ojala me entienda xD
  #4 (permalink)  
Antiguo 28/02/2008, 19:29
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Re: Llenar un ComboBox en Windows forms

Aca haces lo mismo

Combobox combo=new ComboBox();
combo.Datasource=DataSource; // Donde tu datasource puede ser practicamente cualquier cosa un DataSet un Array etc.

El SqlDataSource q utilizas en Web tiene muchos asistentes aca puedes hacer lo mismo con Typed o Untyped Datasets

saludos
peter
  #5 (permalink)  
Antiguo 28/02/2008, 19:35
 
Fecha de Ingreso: noviembre-2006
Ubicación: Pasto
Mensajes: 154
Antigüedad: 17 años, 5 meses
Puntos: 1
Re: Llenar un ComboBox en Windows forms

uy eso es lo q necesito!!!

como se llama el control exactamente?
  #6 (permalink)  
Antiguo 28/02/2008, 19:38
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Re: Llenar un ComboBox en Windows forms

Puedes usar un Dataset agregandolo como un item a tu proyecto.

Saludos
peter
  #7 (permalink)  
Antiguo 28/02/2008, 19:48
 
Fecha de Ingreso: noviembre-2006
Ubicación: Pasto
Mensajes: 154
Antigüedad: 17 años, 5 meses
Puntos: 1
Re: Llenar un ComboBox en Windows forms

ya intente eso y me da un error en la conexion, es por eso q no pude usar el dataset ya q para abrir la conexion utilizo una cadena... :S
  #8 (permalink)  
Antiguo 28/02/2008, 19:56
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Re: Llenar un ComboBox en Windows forms

Igual con un dataset puedes usar una cadena no hay limitacion con ello
CC
Dataset ---> DataAdapter ---> BD

y viceversa.

Te pongo un Ejemplo Acontinuación

public partial class Form1 : Form
{
SqlConnection con = new SqlConnection("data source=.;initial catalog=deepra;uid=sa;pwd=;");
SqlDataAdapter ad;
SqlCommandBuilder cbuilder;
DataSet ds=new DataSet();

public Form1()
{
InitializeComponent();
}

private void BtnLoad_Click(object sender, EventArgs e)
{
ad = new SqlDataAdapter("select * from student", con);
cbuilder = new SqlCommandBuilder(ad);
ad.InsertCommand = cbuilder.GetInsertCommand();
ad.UpdateCommand = cbuilder.GetUpdateCommand();
ad.DeleteCommand = cbuilder.GetDeleteCommand();

ds.Clear();
ad.Fill(ds, "stud");
dataGridView1.DataSource=ds.Tables["stud"];
}

private void BtnUpdate_Click(object sender, EventArgs e)
{
if (ds.HasChanges())
{
ad.Update(ds.Tables["stud"]);
MessageBox.Show("Updated");
}
}

private void BtnCancel_Click(object sender, EventArgs e)
{
if (ds.HasChanges())
{
ds.RejectChanges();
MessageBox.Show("RollBacked");
}
}
}

Recueda un dataset trabaja en modo desconectado.

Un ejemplo usando un Array

public partial class Form1 : Form
{
SqlConnection con = new SqlConnection("Data Source=.;initial catalog=Deepra;uid=sa;pwd=;");
ArrayList DataHolder = new ArrayList();
public Form1()
{
InitializeComponent();
}

private void BtnPopulate_Click(object sender, EventArgs e)
{
SqlCommand com = new SqlCommand("select * from student", con);
con.Open();
SqlDataReader rd = com.ExecuteReader();
if (rd.HasRows)
{
foreach (DbDataRecord rec in rd)
{
DataHolder.Add(rec);
}
}
rd.Close();
con.Close();
}

private void BtnBind_Click(object sender, EventArgs e)
{
dataGridView1.DataSource = DataHolder;
}
}

Estos son meramente ilustrativos

hay mil formas de hacerlo.

saludos
peter
  #9 (permalink)  
Antiguo 28/02/2008, 20:00
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Re: Llenar un ComboBox en Windows forms

Con un DataTable

public partial class Form1 : Form
{
SqlConnection con = new SqlConnection("data source=.;initial catalog=deepra;uid=sa;pwd=;");
SqlDataAdapter ad;
SqlCommandBuilder cbuilder;
DataTable dt = new DataTable();

public Form1()
{
InitializeComponent();
}

private void BtnLoad_Click(object sender, EventArgs e)
{
ad = new SqlDataAdapter("select * from student", con);
cbuilder = new SqlCommandBuilder(ad);
ad.InsertCommand = cbuilder.GetInsertCommand();
ad.UpdateCommand = cbuilder.GetUpdateCommand();
ad.DeleteCommand = cbuilder.GetDeleteCommand();

dt.Clear();
ad.Fill(dt);
dataGridView1.DataSource = dt;
}

private void BtnUpdate_Click(object sender, EventArgs e)
{

DataTable changetData= dt.GetChanges();
if(changetData!=null)
{
ad.Update(dt);
MessageBox.Show("Updated");
}
}

private void BtnCancel_Click(object sender, EventArgs e)
{
DataTable changetData = dt.GetChanges();
if (changetData != null)
{
dt.RejectChanges();
MessageBox.Show("RollBacked");
}
}
}


Saludos
peter
  #10 (permalink)  
Antiguo 28/02/2008, 20:06
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Re: Llenar un ComboBox en Windows forms

Un control enlazado a datos puede enlazarse a estos tipos:

Un objeto que implemente la interfaz IEnumerable (como un objeto Array, ArrayList o Hashtable).
Un objeto que implementa la interfaz IListSource (como un objeto DataSet).

Los controles DataSource de web reducen la chamba a un wizard en windows puedes hacer lo mismo pero como realmente funciona los huesos y entenderlos te hace tener menos problemas.

saludos
peter
  #11 (permalink)  
Antiguo 28/02/2008, 20:45
 
Fecha de Ingreso: noviembre-2006
Ubicación: Pasto
Mensajes: 154
Antigüedad: 17 años, 5 meses
Puntos: 1
Re: Llenar un ComboBox en Windows forms

Si, los asistentes ayudan mucho, me toca ver como uso el de windows forms... como le dije anteriormente, me crea un conflicto, voy a ver si con el ejemplo q me da soluciono el problema, gracias por la pronta respuesta :D
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:56.