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);
}
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 :
que significa la variable "dv[i]", todo lo demas si loentiendo.
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
me reviento con las exigencias de la banda
Combo.Items.Add(Dataset.TableDataset[i].Campo Daset);
asi de facil es ...
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!
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.
Felicidades que buen tip.......
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!!
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!
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!
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";
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());
una duda, saben como llenar un combobox al darle click apartir de un arreglo
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
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