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...

10 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!

 

Post a Comment

<< Home