none
Cargar textbox desde un combobox RRS feed

  • Pregunta

  • Hola, tengo un programa con unos datos en un datagrid, el cual se rellena con un formulario, cuyos datos se graban en una base de datos mysql, bueno, una vez tenidos varios datos en la base de datos y por consiguiente en el datagrid, me gustaria que cuando quiero escribir en el formulario al poner la marca (de un vehículo) se me rellenasen automaticamente ciertos textbox que siempre son iguales para esa marca, hice lo siguiente y me va bien para algunos, pero luego falla, me empieza a rellenar textbox con datos de otra marca y no me vale...

    Esto va en el load del formulario 

     cargarmarca2()
                ComboBox1.DataSource = _dtsmarca2.Tables("fichasn")
                ComboBox1.DisplayMember = "marca" 

    y luego fuera del formulario

    Private Sub ComboBox1_SelectionChangeCommitted(sender As Object, e As System.EventArgs) Handles ComboBox1.SelectionChangeCommitted
            _adaptador.SelectCommand = New MySqlCommand("Select NOMBRE_Y_DIRECCION_DEL_FABRICANTE_DEL_VBASE,NOMBRE_Y_DIRECCION_DEL_FABRICANTE_DE_LA_ULTIMA_FASE,categoria_del_vehiculo,NUMERO_EJES_Y_RUEDAS,avance_5_rueda_maximo_y_minimo,REMOLQUE_CON_BARRA_DE_TRACCION,MASA_MAXIMA_REMOLCABLE_TECNICAMENTE_ADMISIBLE,marca From fichasn", _conexion)
            Dim midataset As New DataSet
            _adaptador.Fill(midataset, "fichasn")
            Me.TextBox5.Text = CStr(midataset.Tables("fichasn").Rows(Me.ComboBox1.SelectedIndex)("NOMBRE_Y_DIRECCION_DEL_FABRICANTE_DEL_VBASE"))
            Me.TextBox6.Text = CStr(midataset.Tables("fichasn").Rows(Me.ComboBox1.SelectedIndex)("NOMBRE_Y_DIRECCION_DEL_FABRICANTE_DE_LA_ULTIMA_FASE"))
            Me.TextBox4.Text = CStr(midataset.Tables("fichasn").Rows(Me.ComboBox1.SelectedIndex)("categoria_del_vehiculo"))
            Me.TextBox13.Text = CStr(midataset.Tables("fichasn").Rows(Me.ComboBox1.SelectedIndex)("NUMERO_EJES_Y_RUEDAS"))
            Me.TextBox19.Text = CStr(midataset.Tables("fichasn").Rows(Me.ComboBox1.SelectedIndex)("avance_5_rueda_maximo_y_minimo"))
            Me.TextBox33.Text = CStr(midataset.Tables("fichasn").Rows(Me.ComboBox1.SelectedIndex)("MASA_MAXIMA_REMOLCABLE_TECNICAMENTE_ADMISIBLE"))
            Me.TextBox34.Text = CStr(midataset.Tables("fichasn").Rows(Me.ComboBox1.SelectedIndex)("REMOLQUE_CON_BARRA_DE_TRACCION"))
        End Sub

    Un saludo y gracias

    jueves, 3 de julio de 2014 10:09

Todas las respuestas

  • Bueno, hace tiempo intente algo similar pero tiende a ser mejorado. Yo entiendo que de un combobox seleccionas algo y directamente su texto pase a un textbox, si es eso lo que quieres entonces esto puede ser util pero como dije, puede ser mejorado.

    Evento SelectedIndexChanged del Combobox.

            TextBox1.Text = String.Empty
            Dim cadena As String = String.Empty
            cadena = ComboBox1.Text
            TextBox1.Text = cadena

    Puedes usar el evento selectedvalue tambien ya que sacas valores de una base de datos.

    Espero sea de ayuda :)

    viernes, 4 de julio de 2014 16:12
  • Si deseas hacer visualizar los datos de marca contenidos en el Combobox, lo podrias hacer a travez de la propiedad SelectedValue, si en este caso quieres hacer visualizar el valor que no se ve del combobox.

    Si quieres hacer visualizar lo que muestra en este caso seria con la propiedad Text del combobox.

    • Propuesto como respuesta Aldair Cosetito viernes, 4 de julio de 2014 22:38
    viernes, 4 de julio de 2014 17:11
  • No , a ver, yo lo que quiero es al seleccionar una marca en mi combobox, que automáticamente se carguen en los textbox los datos asignados a esa marca, que están en mi base de datos y en mi datagridview
    lunes, 7 de julio de 2014 7:29
  • Hola loto_666:

     Te comento a grandes rasgos lo que tienes que hacer, considerando que ya tienes el ComboBox principal cargado:

    1. Crea una función con una consulta de selección SQL que reciba por parámetro el valor del SelectedValue del combobox principal (entiendo que en tu combobox principal tienes asignado al DisplayMember la descripción y en el ValueMember el Id de esa descripción), esta función retornara un DataTable con el resultado de la consulta de seleccion. Ejemplo: "
    "SELECT Campo1, Campo2, Campo3, Campo4  FROM NombreTable  WHERE CampoId = @paramId"

       2. Usa el evento Selection_ChangeCommited para tomar el valor del SelectedValue del combobox y llamar a la funcion

      3. Toma los valores del DataTable, llamandolos por el nombre de la columna y mapealos a los textbox.


    Saludos desde Monterrey, Nuevo León, México!!!

    lunes, 7 de julio de 2014 15:40
  • Echale un vistazo a mi codigo arriba, no estas diciendome lo mismo que yo hice? Salvo por el valor WHERE en la consulta de selección

    Un saludo y gracias


    • Editado loto_666 martes, 8 de julio de 2014 9:26
    martes, 8 de julio de 2014 9:22