Foros del Web » Programación para mayores de 30 ;) » .NET »

Ayuda combo

Estas en el tema de Ayuda combo en el foro de .NET en Foros del Web. Tengo una base de datos(access) llamada vdvoluntarios.mdb con una tabla llamada estadocivil con dos campos id (numerico) y descripcion (texto) Necesito llenar un combo en ...
  #1 (permalink)  
Antiguo 18/11/2004, 07:09
 
Fecha de Ingreso: febrero-2004
Mensajes: 8
Antigüedad: 20 años, 9 meses
Puntos: 0
Ayuda combo

Tengo una base de datos(access) llamada vdvoluntarios.mdb con una tabla llamada estadocivil con dos campos id (numerico) y descripcion (texto)

Necesito llenar un combo en VB.net en el cual me muestre el campo descripcion pero que el valor devuelto sea el del campo id.

Alguien tiene un ejemplo ?

Gracias.
Hixem
[email protected]
  #2 (permalink)  
Antiguo 18/11/2004, 07:46
 
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 12
Antigüedad: 20 años, 11 meses
Puntos: 0
Espero te sirva este codigo, no esta optimizado pero se puede mejorar. en vez de llenar la consulta de un case se puede hacer a traves de otra funcion.
la funcion bindlist recibe el dropdownlist, el nº de la consulta y el mensaje que quieres que aparesca en la primera posicion.
Código HTML:
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        If Not Page.IsPostBack Then
            DropDownList1.DataTextField = "TPREST_NOMBRE"
            DropDownList1.DataValueField = "TPREST_ID"
            BindList(DropDownList1, "1", "seleccione")
        End If
    End Sub
    Public Sub BindList(ByVal cbo As DropDownList, ByVal NumConsulta As String, ByVal valor As String)
        'recibe el objeto DropDownList que se llena al cargar la pagina
        'Numconsulta opcion del case
        'valor = primer registro que se visualiza
        Dim ConnectionString As String = "server=(local);database=MibasedeDatos;UID=sa;PWD=Contraseña"
        Dim myConnection As SqlConnection = New SqlConnection(ConnectionString)
        Dim NomColumna As String
        Select Case NumConsulta
            Case "1"
                NumConsulta = "Select TPREST_ID, TPREST_NOMBRE From TIPO_PRESTACION"
                NomColumna = "TPREST_NOMBRE"
            Case "2"
                NumConsulta = "Select PROY_CODIGO From PROYECTO WHERE PROY_ESTADO <> 'FINALIZADO' ORDER BY PROY_CODIGO"
                NomColumna = "PROY_CODIGO"
        End Select
        Dim myCommand As SqlCommand = New SqlCommand(NumConsulta, myConnection)
        Dim myDataReader As SqlDataReader
        Try
            myConnection.Open()
            myDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection)
            cbo.DataSource = myDataReader
            cbo.DataBind()
        Catch myException As Exception
            Response.Write("Ha ocurrido un error : " & myException.ToString())
            'ShowMessageBox(Me, "Ha ocurrido un error : " & myException.ToString())
        Finally
            If Not myDataReader Is Nothing Then
                myDataReader.Close()
            End If
            cbo.Items.Insert(0, valor)
            cbo.SelectedIndex = 0
        End Try
    End Sub
    Private Sub DropDownList1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
        TextBox12.Text = DropDownList1.SelectedItem.Value
        TextBox13.Text = DropDownList1.SelectedItem.Text
    End Sub
puedes recoger
indice a traves del selecteditem.value
valor a traves del selecteditem.text

tabla [TIPO_PRESTACION]
TPREST_ID / TPREST_NOMBRE
1 servicio
2 suministro
etc..

nos vemos
Kedron
  #3 (permalink)  
Antiguo 18/11/2004, 07:47
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago Chile
Mensajes: 119
Antigüedad: 20 años, 1 mes
Puntos: 0
Hola, pille tu otra consulta y ahora te ayudeo con lo del datasource


Dim dataadapter55 As New OleDbDataAdapter("Select * from estadocivil order by estadocivil asc", Conexion_ACCESS)
Dim DATASET55 As New DataSet()
dataadapter55.Fill(DATASET55, "estadocivil")

'con esto llenas el dataset
nombredetucombo.DataSource = DATASET55
nombredetucombo.DataMember = "estadocivil"
nombredetucombo.DataBind()

'ahora para mostrar los datos, yo lo hago desde diseño
desde la propiedad datatextfield donde pones el nombre de la columna que quieres que se muestre
y datavaluefield que seria el id

para obtener el valor seleccionado

nombredelcombo.SelectedItem.Value

Bien espero que te sirva, pruebalo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:22.