none
Seleciona um Produto en el Combo e mostrar o precio en el textebox RRS feed

  • Pregunta

  • Hola galera.

    Mas una vez buscando por ayuda. Como llamo de una tabla produto la coluna produto y al mismo tiempo mostrar el precio en el mismo form usando combobox e textbox. El combo sera para mostrar el produto e el textebox para enseñar el precio quando selecionado un produto.

    Desde ya gracias a todos..

    Nekrumah Campos

    Angola


    NekFred,Lda

    domingo, 26 de agosto de 2012 19:03

Respuestas

  • te mostrare un ej como lo hago;

    creo un metodo que me devuelve un datatable que sera mi fuente de datos:

            public DataTable prueba_empleado()
            {
                DataTable dt1 = new DataTable();
                dt1.Clear();
                sql = "select nombre,deducciones from empleado";
                da = new SqlDataAdapter(sql, conn);
                da.Fill(dt1);
                return dt1;
            }

    luego en mi form lleno mi combo (ya sea en el load o por medio de un metodo, en este caso sera en el load)

                comboBox1.DataSource = emp.prueba_empleado();
                comboBox1.DisplayMember = "nombre";
                comboBox1.ValueMember = "deducciones";
                textBox1.Text = comboBox1.SelectedValue.ToString();

    como veras muestro el nombre, pero el valor es la deducciones que en tu caso sera el precio de articulo alli igual le digo al textbox que tome el valor de mi combobox

    luego en el evento selectedindexchanged de mi combo le pongo lo siguiente

            private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
                textBox1.Text = comboBox1.SelectedValue.ToString();
            }

    para que por cada nuevo cambio me traiga su debido precio y eso seria todo.

    si la respuesta te ayudo votala como util , si resolvio tu problema marcala como respuesta, saludos

    • Marcado como respuesta Jesus Spray miércoles, 29 de agosto de 2012 16:40
    martes, 28 de agosto de 2012 17:22

Todas las respuestas

  • podrias aplciar la tecnica que uso aqui

    [Winforms] Como usar el SelectedValue

    analiza como se usa en este caso el selectedvalue para recuperar la entidad que se asigna al item del combo

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    domingo, 26 de agosto de 2012 19:38
  • Hola Leandro

    Decir que estoy usando lo que me indicaste pero no resulto. Ally va el codigo, no se donde esta el error.

    private void comboEspecialida_SelectedIndexChanged(object sender, EventArgs e) { //comboEspecialida.SelectedItem.ToString (textPrecoUnitario.Text.(["PreçoUnitário"].Value = tbEspecialidade)); DataRowView rowView = comboEspecialida.SelectedValue as DataRowView; textPrecoUnitario.Text = string.Format ("idEspecialidade: {0} \r\nespecialidade: {1} \r\nprecoUnitario: {3}", rowView["IdEspecialidade"], rowView["especilidade"], rowView["PreçoUnitário"]); }

    La idea es, al selecionar la especialidade y el precio se muestra en el texboxPrecio.


    NekFred,Lda

    lunes, 27 de agosto de 2012 14:16
  • y si pones esto en el evento del combo?

    txt_tu_textbox.Text = tucombo.selectedvalue.toString();

    con esto cuando selecciones un producto del combo te mostrara el precio en el textbox saludos 

    lunes, 27 de agosto de 2012 21:12
  • Hola ya espermentei esto y no obtuvo resultado. Sera que tengo que passar el metodo SelectedValue para o evento Load do form?

    NekFred,Lda

    lunes, 27 de agosto de 2012 23:35
  • te mostrare un ej como lo hago;

    creo un metodo que me devuelve un datatable que sera mi fuente de datos:

            public DataTable prueba_empleado()
            {
                DataTable dt1 = new DataTable();
                dt1.Clear();
                sql = "select nombre,deducciones from empleado";
                da = new SqlDataAdapter(sql, conn);
                da.Fill(dt1);
                return dt1;
            }

    luego en mi form lleno mi combo (ya sea en el load o por medio de un metodo, en este caso sera en el load)

                comboBox1.DataSource = emp.prueba_empleado();
                comboBox1.DisplayMember = "nombre";
                comboBox1.ValueMember = "deducciones";
                textBox1.Text = comboBox1.SelectedValue.ToString();

    como veras muestro el nombre, pero el valor es la deducciones que en tu caso sera el precio de articulo alli igual le digo al textbox que tome el valor de mi combobox

    luego en el evento selectedindexchanged de mi combo le pongo lo siguiente

            private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
                textBox1.Text = comboBox1.SelectedValue.ToString();
            }

    para que por cada nuevo cambio me traiga su debido precio y eso seria todo.

    si la respuesta te ayudo votala como util , si resolvio tu problema marcala como respuesta, saludos

    • Marcado como respuesta Jesus Spray miércoles, 29 de agosto de 2012 16:40
    martes, 28 de agosto de 2012 17:22
  • Buenos Dias Leandro.

    Para decir que el problema esta resuleto. Mira el codigo, lo iso con ayuda de tu ejemplo.

    private void Facturação_Load(object sender, EventArgs e)
            {
    
                carregaCombo();
                carregaGridFactura();
                NovaLinha();
                CalculaTotalGrid();
    
            }
            //Carregar Combobox
            private void carregaCombo()
            {
                comboEspecialida.DataSource = ObtenerEspecialidades();
                comboEspecialida.DisplayMember = "especialidade";
    
            }
    
            //Metodo Para Obter Especialidades
            private ClinicaDataSet.tbEspecialidadeDataTable ObtenerEspecialidades()
            {
                ClinicaDataSet.tbEspecialidadeDataTable tbEspecialidade = new ClinicaDataSet.tbEspecialidadeDataTable();
    
                ClinicaDataSetTableAdapters.tbEspecialidadeTableAdapter tableAdapter = new SoftCliniMed_V_1._0.ClinicaDataSetTableAdapters.tbEspecialidadeTableAdapter();
                tableAdapter.Fill(tbEspecialidade);
    
                return tbEspecialidade;
            }
            //Carrega Dados no Grid
            private void carregaGridFactura()
            {
                using (SqlConnection con = Conexao.coneta())
                {
                    try
                    {
                        string SQL = "SELECT tbMedicos.nomeMedico, tbEspecialidade.especialidade, tbItensDaFactura.PreçoUnitário, tbItensDaFactura.Quantidade, tbItensDaFactura.ValorItem FROM tbMedicos, tbEspecialidade, tbItensDaFactura";
    
                        SqlCommand cmd = new SqlCommand(SQL, con);
    
                        cmd.CommandType = CommandType.Text;
    
                        //cria um dataadapter
                        SqlDataAdapter da = new SqlDataAdapter(cmd);
                        //DataSet ds = new DataSet();
                        DataTable dt = new DataTable();
                        //Preenche o Data Set
                        //da.Fill(ds, "Tarefa");
                        da.Fill(dt);
                        dataGridFa.DataSource = dt;
                        formataGridView();
    
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Erro ao Preencher a Grid da Factura: " + ex.Message.ToString(), "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                    finally
                    {
                        Conexao.desconeta();
                    }
                }
    
            }
    private void comboEspecialida_SelectedIndexChanged_1(object sender, EventArgs e)
            {
    
                DataRowView rowView = comboEspecialida.SelectedValue as DataRowView;
                textPrecoUnitario.Text = string.Format("{0:#,###.##}", rowView["precoUnitario"]);
    
            }

    Gracias por todas dicas..


    NekFred,Lda

    miércoles, 29 de agosto de 2012 16:19