none
¿Como tomar un valor desde un combobox cargado con datos de una tabla? RRS feed

  • Pregunta

  • Buenos días/tardes/noches!!

    Les planteo mi consulta, estaba realizando un proyecto en Visual Studio 2012 y SQL Server Management Studio, en este proyecto tengo una tabla con países los cuales van cargados en el combobox, esta tabla tiene ademas un "ID" para cada país, la consulta es, si necesito modificar un dato y tomar ese ID cuando el usuario lo seleccione en el combobox  para utilizarlo en una consulta que guardara esta modificación, ¿hay alguna forma de tomar ese "ID" partiendo desde la selección del usuario?

    Desde ya gracias espero que mas o menos se entienda lo que plantee!

    sábado, 18 de junio de 2016 18:06

Respuestas

  • ctrlcctrlv,

    ¿Cómo cargas los datos al objeto de tipo ComboBox? ¿La consulta retorna los campos que asignas a las propiedades DisplayMember y ValueMember? Deberías tener algo parecido a lo siguiente:

    Dim ConsultaSQL As String = "SELECT Cod_Pais, Nombre_Pais FROM Paises"
    
    Dim da New SqlDataAdapter(ConsultaSQL, conexion)
    Dim dt New DataTable();
    
    da.Fill(dt)
    
    ComboBox1.ValueMember = "Cod_Pais"
    ComboBox1.DisplayMember = "Nombre_Pais"
    ComboBox1.DataSource = dt



    • Marcado como respuesta ctrlcctrlv lunes, 20 de junio de 2016 13:27
    sábado, 18 de junio de 2016 23:26

Todas las respuestas

  • ctrlcctrlv,

    Va a depender de como cargaste el objeto de tipo ComboBox. Si asignaste valores a las propiedades ValueMember y DisplayMember entonces puedes tomar el valor del elemento seleccionado desde la propiedad SelectedValue.

    'Carga de datos al objeto de tipo ComboBox
    ComboBox1.ValueMember = "idPais"
    ComboBox1.DisplayMember = "Pais"
    ComboBox1.DataSource = paises 'el objeto paises puede ser de tipo DataTable
    
    
    'Para obtener el valor del elemento seleccionado bastará con
    Dim valorSeleccionado As Integer = ComboBox1.SelectedValue


    sábado, 18 de junio de 2016 18:24
  • Evidentemente estaba apuntando hacia la dirección correcta, muchas gracias por tu respuesta.

    Te planteo lo siguiente, ya modifique mi código pero en lugar de aparecer los "ID" aparece la palabra "ID" ("Cod_Pais" aparece en verdad ya que asi se llama la columna)

    gracias nuevamente!

    sábado, 18 de junio de 2016 21:19
  • ctrlcctrlv,

    ¿Cómo cargas los datos al objeto de tipo ComboBox? ¿La consulta retorna los campos que asignas a las propiedades DisplayMember y ValueMember? Deberías tener algo parecido a lo siguiente:

    Dim ConsultaSQL As String = "SELECT Cod_Pais, Nombre_Pais FROM Paises"
    
    Dim da New SqlDataAdapter(ConsultaSQL, conexion)
    Dim dt New DataTable();
    
    da.Fill(dt)
    
    ComboBox1.ValueMember = "Cod_Pais"
    ComboBox1.DisplayMember = "Nombre_Pais"
    ComboBox1.DataSource = dt



    • Marcado como respuesta ctrlcctrlv lunes, 20 de junio de 2016 13:27
    sábado, 18 de junio de 2016 23:26
  • Gracias nuevamente por tu Respuesta Williams Morales,

    Lo único que agregue (luego de cargar el combobox) es lo siguiente para que el textbox muestre dicho "ID"

    textbox.Text = combobox.SelectedValue

    El cual lo agregue en la propiedad "SelectedValueChanged" del ComboBox, agrego esto por si le sirve a alguien.

    muchas gracias nuevamente!

    lunes, 20 de junio de 2016 13:27