Usuario
Como cargar los datos de un combobox a un datagridview

Pregunta
-
Buen día
Tengo una duda con respecto a como mostrar todos los datos relacionados a la opción en el combobox, es decir en el combobox tengo la opcion de mostrar por ejemplo manzana y yo quiero mostrar en el datagridview la información respectiva a la manzana como codigo, valor,etc.
coloqué este código en el evento del boton y solo me trae el primer valor dataGridViewProductos.Rows.Add(comboBoxProductos.Text);
Muchas gracias a quien me pueda ayudar.
Todas las respuestas
-
si es que estas usando base de datos tendria que hacer primero una busqueda
Select * from tutabla where producto =comboBoxProductos.Text;
dataGridView.Items.Clear();
dataGridView.dataSource = BusquedaQue realizaste
Si no usas base de datos entonces se ocupa mas informacio
para poder ayudarte
- Propuesto como respuesta Pedro AlfaroModerator martes, 19 de febrero de 2019 15:43
-
Que pena si me faltó suministar más información, bueno en primer lugar si estoy utilizando una base de datos y utilizo este metodo para realizar el select de los campos que deseo mostrar:
public DataTable MostrarProductos()
{
DataTable dt = new DataTable();
try
{
using (SqlConnection Conn = MiConexion.ObtenerConexion())
{
SqlCommand comando = new SqlCommand(string.Format("SELECT proCodigo, proDescripcion,proValor,proCantidad FROM TB_Productos"), Conn);
SqlDataAdapter adaptador = new SqlDataAdapter(comando);
adaptador.Fill(dt);
}
}
catch(SqlException e)
{
MessageBox.Show("Error a listar los productos", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
MessageBox.Show("Error al listar los productos ", e.Message);
}
return dt;
}luego utilizo este metodo para cargar los valores en el combobox:
private void FrmProductos_Load(object sender, EventArgs e)
{
GestionProducto mostarLista =new GestionProducto();
comboBoxProductos.DataSource = mostarLista.MostrarProductos();
comboBoxProductos.DisplayMember = "proDescripcion";
comboBoxProductos.ValueMember = "proCodigo";
}Este es el boton:
private void BtnConsultarProductos_Click(object sender, EventArgs e)
{
dataGridViewProductos.Rows.Add(comboBoxProductos.SelectedValue,comboBoxProductos.Text);
}De esta forma solo trae el codigo,descripcion,falta valor y cantidad.
Lo que no se es como al seleccionar un dato del combobox por ejemplo vaso, me muestre en el datagridview no solo el campo descripcion con el nombre del producto que para este caso es vaso, si no que adicionalmente me traiga los otros datos el valor, cantidad,etc.
No se si me hice entender muchas gracias
john
-
Hola! Mi pregunta es... ¿Por qué realizas tal operación en un combobox? , técnicamente ¿lo que necesitas es una búsqueda? Imagina que tengas 10,000 registros, nadie va a buscar tal registro en los 10,000 registros del combobox. Sería mejor que lo hicieras con un textbox y programas una búsqueda.
Pero si necesitas resolver tu caso en tu combobox, dame tiempo para hacerlo y enviarte el código. Luego editaré este post.
- Editado ReyneerLeon miércoles, 20 de febrero de 2019 4:48
-
aqui en tu
SqlCommand comando = new SqlCommand(string.Format("SELECT proCodigo, proDescripcion,proValor,proCantidad FROM TB_Productos"), Conn);
agregale
SqlCommand comando = new SqlCommand(string.Format("SELECT proCodigo, proDescripcion,proValor,proCantidad FROM TB_Productos where proCodigo= comboBoxProductos.Value"), Conn);
// con esta buscar por descripcion
o
// con esta buscas por codigo
SqlCommand comando = new SqlCommand(string.Format("SELECT proCodigo, proDescripcion,proValor,proCantidad FROM TB_Productos where proDescripcion= comboBoxProductos.Text"), Conn);
y luego
private void BtnConsultarProductos_Click(object sender, EventArgs e)
{
dataGridViewProductos.datasouce = MostrarProductos();
}
y creo que esto bastara
- Propuesto como respuesta Pedro AlfaroModerator lunes, 25 de febrero de 2019 18:17
-
Buen día Marti
Tengo un error y me sale esto:
Tambien en la compilación me sale esto:
System.ArgumentException: 'No se puede enlazar con el nuevo miembro de presentación.
Nombre del parámetro: newDisplayMember'
y señala este codigo: comboBoxProductos.ValueMember = "proCodigo";
Gracias intentaré boorando esta linea, pero en caso de no ser positivo el resultado, espero la ayuda.
john
-
-
creo que debes revisar la sintaxis de SQL
SqlCommand comando = new SqlCommand(string.Format("SELECT proCodigo, proDescripcion,proValor,proCantidad FROM TB_Productos where proCodigo= '{comboBoxProductos.Value}'"), Conn);
- Propuesto como respuesta Pedro AlfaroModerator jueves, 21 de febrero de 2019 15:29
- Votado como útil Pedro AlfaroModerator lunes, 25 de febrero de 2019 18:17
- Propuesto como respuesta Pedro AlfaroModerator lunes, 25 de febrero de 2019 18:17
-
-
ok Entonces
string sql = $"SELECT proCodigo, proDescripcion,proValor,proCantidad FROM TB_Productos where proCodigo= '{comboBoxProductos.Value}'";
SqlCommand comando = new SqlCommand(sql, Conn);
- Propuesto como respuesta Pedro AlfaroModerator lunes, 25 de febrero de 2019 18:17
-
hola
NUNCA concatenes los valores de los parametros en el string, tienes que usar parametros
string query = "SELECT proCodigo, proDescripcion,proValor,proCantidad FROM TB_Productos where proCodigo= @codigo"; SqlCommand comando = new SqlCommand(query, Conn); comando.Paramters.AddWithValue("@codigo", comboBoxProductos.SelectedValue);
y si el campo "proCodigo" en la tabla es numerico respecta los tipos de datos
comando.Paramters.AddWithValue("@codigo", Convert.ToInt32(comboBoxProductos.SelectedValue));
Ademas se usa la propiedad SelectedValue para tomar la seleccion, pero sino funciona revisa de invertir esta parte del codigo
GestionProducto mostarLista =new GestionProducto(); comboBoxProductos.DisplayMember = "proDescripcion"; comboBoxProductos.ValueMember = "proCodigo"; comboBoxProductos.DataSource = mostarLista.MostrarProductos();
primero asigna las propiedades y depsues el datasource
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Propuesto como respuesta Pedro AlfaroModerator viernes, 22 de febrero de 2019 21:22
-
Buen día
realicé los cambios, pero me subraya el comboBoxProductos
en esta parte
comando.Paramters.AddWithValue("@codigo", comboBoxProductos.SelectedValue);
no se a que se deba, la funcion mostar lista la tengo en un archivo diferente al formulario de productos en el que esta el boon para consultar.
john
-
has un cast a int en
o crea un tem
(int)comboBoxProductos.SelectedValue
int Codigo = (int)comboBoxProductos.SelectedValue
o
int Codigo = comboBoxProductos.SelectedValue as int
- Propuesto como respuesta Pedro AlfaroModerator lunes, 25 de febrero de 2019 18:17