none
: 'La conversión del tipo 'DataRowView' en el tipo 'Integer' no es válida.' RRS feed

  • Pregunta

  • Buen día.

    Espero que por favor me puedan ayudar en el problema titulado. Lo que quiero hacer es lo siguiente:

    1) Tengo un combobox1  que me muestra el registro de una columna de una base de datos. Esto funciona a la perfección.

    2) Quiero mostrar en un textbox, el ID de la base de datos cada vez que cambio la selección del combobox1. Para ello hice lo siguiente:

     Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles ComboBox1.SelectedIndexChanged

            TextBox23.Text = CType(CInt(ComboBox1.SelectedValue), String)
        End Sub

    Sin embargo no logro mi cometido. Espero tengan la amabilidad de ayudarme en este asunto.

    Gracias

    domingo, 24 de junio de 2018 15:40

Respuestas

  • Lo que el error explica, es que el tipo del objeto seleccionado es DataRowView. Entonces

    TextBox23.Text = CType(CInt(ComboBox1.SelectedValue("ID")), String)

    Debería funcionar en un ambiente "dinámico", de option strict off.

    Sino, casteas el ComboBox1.SelectedValue al tipo DataRowView, y entonces extraes el valor de la columna, ya sea por su nombre o su índice, la conviertes a string y la asignas a la propiedad Text del TextBox23.

    Ok, Claro que si la data está bindeada, la propiedad ValueMember puede ser asignada a "ID". En este caso el SelectedValue será la columna deseada.

    ---

    Nada de nada. Ni siquiera para decir que la respuesta es una porquería.

    La verdad es que se trata de un foro de gente muy amarga...

    domingo, 24 de junio de 2018 15:56