none
Intentando cargar datos de una tabla a un combobox y nada ayuda RRS feed

  • Pregunta

  • este es el codigo

    Dim cmd As New OleDb.OleDbCommand
    Dim Conec As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source= " & My.Application.Info.DirectoryPath & "\datos\Tipos_de_cervezas.accdb" & ";Persist Security Info=False;")
    Conec.Open()
    Dim ds As New DataSet
    Dim dt As New DataTable
    Dim strsql As String = "select * Tipos_de_cervezas"
    Dim ADP As New OleDb.OleDbDataAdapter(strsql, Conec)
    ds.Tables.Add("Tipos_de_cervezas")
    ADP.Fill(ds.Tables("Tipos_de_cervezas"))
    Me.ComboBox6.DataSource = ds.Tables(0)
    'With ComboBox6
    ' .DataSource = dt
    ' .DisplayMember = "Nombre"
    ' .ValueMember = "id"
    'End With

    sábado, 23 de noviembre de 2013 17:34

Respuestas

  • Gracias pero sigue sin funcionar

    Recuerda las reglas para preguntar en el foro: nunca digas "no funciona". Explica siempre el detalle preciso de cuál es la manera en la que no funciona. No da lo mismo que salga un error de compilación o que se produzca un fallo en tiempo de ejecución. Si el fallo es de compilación, copia la línea exacta en la que sale el error y transcribe con precisión el mensaje de error que arroja el compilador. Si el error es en tiempo de ejecución, hay que distinguir entre si se produce una excepción (copia el texto exacto del mensaje, y resalta sobre tu código fuente la línea en la que se produce), o bien si no se produce una excepción sino que muestra resultados que no son los deseados, entonces explica cuáles son los resultados que observas, cuáles son los que esperabas, y cuáles son los detalles que has observado al seguir la ejecución con el debugger, indicando la línea concreta del programa fuente en la que se generan los resultados distintos a lo que esperabas.

    Como puedes ver, para que alguien pueda ayudarte es necesario dar mucha más información. No basta con decir "sigue sin funcionar".

    OK Perdona lo e solucionado de esta manera 

    'SELECCIONA EL TIPO DECERVEZA DIRECTAMENTE DE LA BASE DE DATOS Y LO CARGA EN EL COMBOBOX

    Dim cmd As New OleDb.OleDbCommand
    Dim Conec As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source= " & My.Application.Info.DirectoryPath & "\datos\Tipos_de_cervezas.accdb" & ";Persist Security Info=False;")
    Conec.Open()
    Try
    Dim acc As String = "SELECT nombre FROM Tipos_de_cervezas"
    Dim Ds As New OleDb.OleDbDataAdapter(acc, Conec)
    Dim Dt As DataTable = New DataTable("Tipos_de_cervezas")
    Ds.Fill(Dt)
    With ComboBox6
    .DataSource = Dt
    .DisplayMember = "nombre"
       
    End With
    Catch ex As Exception
    MessageBox.Show(ex.Message)

    End Try
    'SELECCIONA EL TIPO DECERVEZA DIRECTAMENTE DE LA BASE DE DATOS Y LO CARGA EN EL COMBOBOX


    • Marcado como respuesta JETET domingo, 24 de noviembre de 2013 9:28
    • Desmarcado como respuesta JETET domingo, 24 de noviembre de 2013 9:29
    • Marcado como respuesta JETET domingo, 24 de noviembre de 2013 9:34
    domingo, 24 de noviembre de 2013 9:28

Todas las respuestas

  • El único error que veo es que falta la palabra FROM en la consulta SQL:

    Dim strsql As String = "select * FROM Tipos_de_cervezas"

    Aparte de eso, ten cuidado porque se te ha olvidado cerrar la conexión. Si sólo la vas a usar para llamar al método Fill, no hace falta que la abras, porque el Fill si se la encuentra cerrada la abre, la usa y la vualve a cerrar.

    Y Ojo con el Combobox, si no asignas la propiedad DisplayMember, mostrará en todas las filas el nombre de la clase usada como DataRow, en lugar del valor de la columna extraida de la base de datos.

    sábado, 23 de noviembre de 2013 19:56
  • El único error que veo es que falta la palabra FROM en la consulta SQL:

    Dim strsql As String = "select * FROM Tipos_de_cervezas"

    Aparte de eso, ten cuidado porque se te ha olvidado cerrar la conexión. Si sólo la vas a usar para llamar al método Fill, no hace falta que la abras, porque el Fill si se la encuentra cerrada la abre, la usa y la vualve a cerrar.

    Y Ojo con el Combobox, si no asignas la propiedad DisplayMember, mostrará en todas las filas el nombre de la clase usada como DataRow, en lugar del valor de la columna extraida de la base de datos.

    Gracias pero sigue sin funcionar

    domingo, 24 de noviembre de 2013 8:14
  • Gracias pero sigue sin funcionar

    Recuerda las reglas para preguntar en el foro: nunca digas "no funciona". Explica siempre el detalle preciso de cuál es la manera en la que no funciona. No da lo mismo que salga un error de compilación o que se produzca un fallo en tiempo de ejecución. Si el fallo es de compilación, copia la línea exacta en la que sale el error y transcribe con precisión el mensaje de error que arroja el compilador. Si el error es en tiempo de ejecución, hay que distinguir entre si se produce una excepción (copia el texto exacto del mensaje, y resalta sobre tu código fuente la línea en la que se produce), o bien si no se produce una excepción sino que muestra resultados que no son los deseados, entonces explica cuáles son los resultados que observas, cuáles son los que esperabas, y cuáles son los detalles que has observado al seguir la ejecución con el debugger, indicando la línea concreta del programa fuente en la que se generan los resultados distintos a lo que esperabas.

    Como puedes ver, para que alguien pueda ayudarte es necesario dar mucha más información. No basta con decir "sigue sin funcionar".

    domingo, 24 de noviembre de 2013 8:34
  • Gracias pero sigue sin funcionar

    Recuerda las reglas para preguntar en el foro: nunca digas "no funciona". Explica siempre el detalle preciso de cuál es la manera en la que no funciona. No da lo mismo que salga un error de compilación o que se produzca un fallo en tiempo de ejecución. Si el fallo es de compilación, copia la línea exacta en la que sale el error y transcribe con precisión el mensaje de error que arroja el compilador. Si el error es en tiempo de ejecución, hay que distinguir entre si se produce una excepción (copia el texto exacto del mensaje, y resalta sobre tu código fuente la línea en la que se produce), o bien si no se produce una excepción sino que muestra resultados que no son los deseados, entonces explica cuáles son los resultados que observas, cuáles son los que esperabas, y cuáles son los detalles que has observado al seguir la ejecución con el debugger, indicando la línea concreta del programa fuente en la que se generan los resultados distintos a lo que esperabas.

    Como puedes ver, para que alguien pueda ayudarte es necesario dar mucha más información. No basta con decir "sigue sin funcionar".

    OK Perdona lo e solucionado de esta manera 

    'SELECCIONA EL TIPO DECERVEZA DIRECTAMENTE DE LA BASE DE DATOS Y LO CARGA EN EL COMBOBOX

    Dim cmd As New OleDb.OleDbCommand
    Dim Conec As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source= " & My.Application.Info.DirectoryPath & "\datos\Tipos_de_cervezas.accdb" & ";Persist Security Info=False;")
    Conec.Open()
    Try
    Dim acc As String = "SELECT nombre FROM Tipos_de_cervezas"
    Dim Ds As New OleDb.OleDbDataAdapter(acc, Conec)
    Dim Dt As DataTable = New DataTable("Tipos_de_cervezas")
    Ds.Fill(Dt)
    With ComboBox6
    .DataSource = Dt
    .DisplayMember = "nombre"
       
    End With
    Catch ex As Exception
    MessageBox.Show(ex.Message)

    End Try
    'SELECCIONA EL TIPO DECERVEZA DIRECTAMENTE DE LA BASE DE DATOS Y LO CARGA EN EL COMBOBOX


    • Marcado como respuesta JETET domingo, 24 de noviembre de 2013 9:28
    • Desmarcado como respuesta JETET domingo, 24 de noviembre de 2013 9:29
    • Marcado como respuesta JETET domingo, 24 de noviembre de 2013 9:34
    domingo, 24 de noviembre de 2013 9:28