none
Agregar datos a un combobox RRS feed

  • Pregunta

  • Hola amigos, necesito ayuda en un pequeño problema--> Supongamos que tengo dos tablas en 

    create table categoria(
    codcat int,
    descripcion varchar(50)
    )
    create table producto(
    codpro int,
    codcat int,
    descripcion varchar(50)

    )

    SON TABLAS RELACIONADAS

    Y ahora lo que quiero hacer es que cuando yo inserte desde un formulario una nueva categoria automaticamente tambien se muestre en el formulario producto desde un combobox la nueva categoria agregada para asi poder saber de que categoria es el nuevo producto que estoy agregando EN C#. Espero puedan ayudarme, gracias de antemano.!



    miércoles, 5 de octubre de 2016 3:22

Respuestas

  • Hola Jhonatan De la Cruz,

    Para actualizar los datos de un comboBox, solo necesitas reasignar los valores al DataSource

    Puedes echarle un ojo a este artículo muy bueno de Leandro.

    Comunicar Formularios

    Puedes implementar la tercera técnica, que usa el evento Form_Closed del hijo, para actualizar los datos del comboBox. Por lo que del formulario de registro de producto, agregarías un botón que abra una nueva instancia del FormCategoria para poder agregar un nuevo elemento del tipo.

        private void btnAddCategory_Click(object sender, EventArgs e)
            {
                using (FrmCategoria fcat = new FrmCategoria())
                {
                    fcat.FormClosed += updateComboCategories;
    
                    //Aquí muestras el form para el registro
                    fcat.ShowDialog();
                }
            }

    El evento generado :

     private void updateComboCategories(object sender, FormClosedEventArgs e)
            {
                if(((Form)sender).DialogResult == DialogResult.OK)
                {
                    //Carga los datos de la BD
                    loadCategories();
                }
            }

    Y el método loadCategories es donde harías la consulta a la BD.

             private void loadCategories()
            {
                try
                {
                    using (SqlConnection con = new SqlConnection("MiCadenaConexion"))
                    {
                        con.Open();
                        string sql = "select codcat, descripcion from categoria";
                        SqlDataAdapter da = new SqlDataAdapter(sql, con);
    
                        DataTable dt = new DataTable();
                        da.Fill(dt); //Cargo el DT con el resultado de la consulta
    
                        //Cargo al ComboBox
                        cboCategories.DataSource = dt;
                        cboCategories.DisplayMember = "descripcion";
                        cboCategories.ValueMember = "codcat";
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }


    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    miércoles, 5 de octubre de 2016 4:19