Friday, July 07, 2006

LLENAR COMBOBOX DESDE BASE DE DATOS


Veremos ahora como llenar de valores un comboBox, el cual posee varias propiedades, esta ves solo usaremos "Items" y "Add", de este forma seleccionamos la posicion en donde irá el valor y luego se agraga.
Recuerda que la conexion ya existe así que solo se mostrará la parte en donde tiene relacion esta función.
La ayuda de Visual Studio .Net dice sobre este control lo siguiente:
"El control ComboBox de los formularios Windows Forms se utiliza para mostrar datos en un cuadro combinado desplegable. De forma predeterminada, el control ComboBox aparece en dos partes: la parte superior es un cuadro de texto que permite al usuario escribir un elemento de la lista. La segunda parte es un cuadro de lista que muestra una lista de elementos, de los cuales el usuario puede seleccionar uno."
El codigo es el siguiente:
comboBox1.Items.Clear();
string valorItem;
for(int i = 0; i<= (ds.Tables["Nombre_de_la_Tabla"].Rows.Count-1);i++)
{
valorItem = dv[i]["Nombre_del_Campo"].ToString();
comboBox1.Items.Add(valorItem);
}
De esta forma se llenan los campos de un comboBox1, esta vez eso es todo...

15 Comentarios :

At 5:25 PM, Blogger Jose Feliciano said...

que significa la variable "dv[i]", todo lo demas si loentiendo.

 
At 4:27 PM, Blogger Edgar said...

exactamente que significa eso de dv[i] yo intente solucionar eso con: combo.Items.add(datasource.Tables["nombre_tabla"].rows[i].tostring()); pero ni asi resulta asi que te exigo que pongas la respuesta adecuada

 
At 1:49 AM, Blogger Diego Ruiz del Arbol said...

me reviento con las exigencias de la banda

 
At 12:06 PM, Blogger Ronny Francisco said...

Combo.Items.Add(Dataset.TableDataset[i].Campo Daset);

asi de facil es ...

 
At 7:44 PM, Blogger luchiano said...

Hola gente.... tengo que presentar un beta para la proxima semana en la facu... estoy al horno soy novato en el tema.... quisiera si pueden darme una mano, como relaciono dos combobox? por ej, tengo un combo provincias y otro que tiene localidades en la bd estan filtrados con un value en localidad segun corresponda a una provincia, pero cuando voy al form y selecciono una provincia como hago que filtre las localidades de la misma??? y la otra duda que tengo es... como inserto e imprimo texto en word? les juro que no encuentro nada entro a la ayuda de VS y no logro hacerlo andar... muy agradecido si me dan una mano... GRACIA!

 
At 7:49 AM, Blogger Ronny FR said...

Saludos, para llenar un combobox pueden hacer lo siguiente:
combitobox.DataSource = ds.Tables[0].DefaultView;
combitobox.DisplayMember = "nombre_campo";
donde ds es el DataSource que tienen que definir primero (alguna consulta sql), y nombre_campo es el nombre del campo cuyos valores quieren que se llene en el combo. Asi no tendran que hacer ningun bucle. y siempre asegurense que tienen datos en su DataSource, por ej.:
if (ds.Tables[0].Rows.Count > 0)
{
combitobox.DataSource = ds.Tables[0].DefaultView;
combitobox.DisplayMember = "nombre_campo";
}
Suerte.

 
At 7:22 AM, Blogger Software said...

Felicidades que buen tip.......

 
At 8:36 AM, Blogger Jander said...

Hola a todos!!, os adjunto un método para que nadie tenga problemas para añadir varios campos de un mismo Row de un DataTable en un ComboBox. El método:

private void RellenarCombo(DataTable dt, ComboBox cb)
{
cb.Items.Clear();
string valorItem;

for (int i = 0; i < dt.Rows.Count; i++)
{
valorItem = (String)dt.Rows[i]["nombreCampo1"];
valorItem = valorItem + " " + (String)dt.Rows[i]["nombreCampo2"];
// y así sucesivamente con todos los campos que queramos agregar a cada fila de la lista del combo.
cb.Items.Add(valorItem);
}

}

Saludos!!

 
At 8:49 AM, Blogger Jander said...

Mejor aún:

public void RellenarCombo(DataTable dt, ComboBox cb, String[] campos)
{
cb.Items.Clear();
string valorItem;
int j;

for (int i = 0; i < dt.Rows.Count; i++)
{
for (j = 0; j < campos.Length; j++)
{
valorItem = (String)dt.Rows[i][j];
valorItem = valorItem + " " + (String)dt.Rows[i][j];
}
cb.Items.Add(valorItem);
}

}

Saludos!

 
At 5:05 PM, Blogger Jander said...

Perdón!!, he detectado que mi método anterior no era correcto.

Este si lo es:

internal static void RellenarCombo(DataTable dt, ComboBox cb, String[] campos)
{
cb.Items.Clear();
string valorItem = "";
int j;
int numCampo;

for (int i = 0; i < dt.Rows.Count; i++)
{
valorItem = "";
numCampo = 0;

// Concatena las campos que formarán un registro de la lista del combo
for (j = 0; j < campos.Length; j++)
{
if (numCampo == 0)
{
valorItem = dt.Rows[i][campos[j]].ToString();
numCampo++;
}
else
{
valorItem = valorItem + " " + dt.Rows[i][campos[j]].ToString();
}
}
// Se añade el registro formado a la lista de elementos del combo
cb.Items.Add(valorItem);
}

}


Saludos nuevamente!

 
At 11:10 AM, Blogger Raul Naranjo said...

Les Dejo un ejemplo que me funciono con una consulta a MYSQL

MySqlConnection cnn = new MySqlConnection(conexion);
MySqlDataAdapter da = new MySqlDataAdapter("SELECT cod_proveedor , nombre_proveedor, telefono_proveedor FROM proveedor", cnn);
System.Data.DataSet ds = new System.Data.DataSet();
ds.Tables.Clear();
cmbProveedor.Items.Clear();
da.Fill(ds, "proveedor");
cmbProveedor.DataSource = ds.Tables[0];
cmbProveedor.DisplayMember = "nombre_proveedor";
cmbProveedor.ValueMember = "cod_proveedor";

 
At 1:39 PM, Blogger luisgabo said...

tengo una duda resulta que quiero enviar la consulta me arroja un cod y una descripion lleno el combo con la descripcion pero necesito enviar a la db un insert con el codigo que debo realizar

tengo esto

com2.Parameters.Add("@idCalificacion", SqlDbType.Int);
com2.Parameters["@idCalificacion"].Value = int.Parse(cbcalificacion.ValueMember.ToString());

 
At 9:58 PM, Blogger Scorp said...

una duda, saben como llenar un combobox al darle click apartir de un arreglo

 
At 3:48 PM, Blogger Edmundo said...

este tipo de llenado es correcto, pero...... que pasa con los vaores que queremos mostrar y los valores que deseamos en realidad manejar en la memoria? El select value y el display value son prpiedades que no se manejan en este ejemplo... solo tengan eso en mente en aplicaciones de sus clientes...saludos

 
At 3:49 PM, Blogger Edmundo said...

Esta correcto el ejemplo... pero que pasa ...con los valores que deseamos mostrar al usuario y los valores que deseamos manejar en memoria ? a este ejemplo le falta las propiedades display value y el select value .... tengan eso en mente en sus desarrollos..saludos

 

Post a Comment

<< Home