Jump to content
arned

[Resolvido] ajuda para consultar base de dados e adicionar valores a uma listbox

Recommended Posts

arned

Boas, preciso de um codigo que consulte uma base de dados e que preencha uma listbox... Com o OleDb

alguem pode ajudar?

eu tenho o seguinte codigo:

Public Sub preencherlstcod1(ByVal lst As ListBox, ByVal query As String)
        ListBox3.Items.Clear()
        Dim sql As String = "SELECT codigoproduto FROM Produtos"
        Using connection As New OleDb.OleDbConnection(clientes.conprovide)
            Dim command As New OleDb.OleDbCommand(sql, connection)
            connection.Open()
            Dim cmd As New OleDb.OleDbCommand(query, connection)
            Dim db_reader As OleDb.OleDbDataReader = cmd.ExecuteReader(CommandBehavior.Default)
            Dim codproduto, i As Integer

            Do While db_reader.Read
                codproduto = db_reader.Item(0)
                For i = 1 To db_reader.FieldCount - 1
                    codproduto &= vbTab & db_reader.Item(i)
                Next i
                ListBox3.Items.Add(codproduto)
            Loop
            connection.Close()
        End Using
    End Sub

mas está a dar erro desta linha -> Dim db_reader3 As OleDb.OleDbDataReader = cmd3.ExecuteReader(CommandBehavior.Default)

nao sei o que fazer...

Share this post


Link to post
Share on other sites
Andrepereira9

boas

Já conseguiste resolver o Problema?  :D


A informática chegou para resolver problemas que antes não existiam

Quem ri por último é porque está conectado a 52 Kbs.

Share this post


Link to post
Share on other sites
Rechousa

Olá,

Não testei, mas palpita-me que tens um erro no teu código.

Repara que tens definidas dois objectos (command e cmd) do tipo OleDbCommand. A command está correctamente inicializada com a instrução SQL que pretendes, enquanto que a cmd recebes por parâmetro. É isto que pretendes?

É que isto está um bocado esquisito pois estás a definir o objecto command desnecessariamente... Digo eu...

A meu ver o código corrigido seria:

Public Sub preencherlstcod1(ByVal lst As ListBox, ByVal query As String)
        ListBox3.Items.Clear()
        Dim sql As String = "SELECT codigoproduto FROM Produtos"
        Using connection As New OleDb.OleDbConnection(clientes.conprovide)
            Dim command As New OleDb.OleDbCommand(sql, connection)
            connection.Open()
            Dim db_reader As OleDb.OleDbDataReader = command.ExecuteReader(CommandBehavior.Default)
            Dim codproduto, i As Integer

            Do While db_reader.Read
                codproduto = db_reader.Item(0)
                For i = 1 To db_reader.FieldCount - 1
                    codproduto &= vbTab & db_reader.Item(i)
                Next i
                ListBox3.Items.Add(codproduto)
            Loop
            connection.Close()
        End Using
    End Sub

Experimenta e diz qq coisa.

Se não funcionar diz qual é a mensagem de erro e a linha.


Pedro Martins

Sharing is Knowledge!

http://www.linkedin.com/in/rechousa

Share this post


Link to post
Share on other sites
arned

Boas, testei e nao funciona, continua a dar-me o mesmo erro...

ou seja:

Public Sub preencherlstcod1(ByVal lst As ListBox, ByVal query As String)
        ListBox3.Items.Clear()
        Dim sql As String = "SELECT codigoproduto FROM Produtos"
        Using connection As New OleDb.OleDbConnection(clientes.conprovide)
            Dim command As New OleDb.OleDbCommand(sql, connection)
            connection.Open()
            Dim db_reader As OleDb.OleDbDataReader = command.ExecuteReader(CommandBehavior.Default) ' dá erro aqui !!!!!!!!!!!!!!!!!!!!!
            Dim codproduto, i As Integer

            Do While db_reader.Read
                codproduto = db_reader.Item(0)
                For i = 1 To db_reader.FieldCount - 1
                    codproduto &= vbTab & db_reader.Item(i)
                Next i
                ListBox3.Items.Add(codproduto)
            Loop
            connection.Close()
        End Using
    End Sub

o erro é o seguinte:

OleDbException was unhandled

Não foi fornecido nenhum valor para um ou mais parâmetros necessários.

:x

Share this post


Link to post
Share on other sites
bioshock

Que trapalhada que para aí vai..

Ex:

             Dim BaseDados As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & Application.StartupPath & "\BD.mdb';Persist Security Info=True;"
             Dim connection As New OleDbConnection(BaseDados)
             Dim query As String = "SELECT Nome FROM Clientes"
             Dim NovoDataAdapter = New OleDbDataAdapter(query, connection)
             Dim NovoDataSet = New DataSet
             NovoDataAdapter.Fill(NovoDataSet, "Clientes")
            Try
                ' Ciclo para preencher a listbox, com os NOMES dos clientes;
                For i = 0 To NovoDataSet.Tables("Clientes").Rows.Count - 1
                    Me.ListBox1.Items.Add(NovoDataSet.Tables("Clientes").Rows(i).Item("Nome"))
                Next
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try

Share this post


Link to post
Share on other sites
arned

muito obrigado bioshock. ando a volta a tentar fazer qualquer coisa para isto funcionar mas ainda nao tinha conseguido...

ja agora eu quando faço adicionar, estou a inserir automaticamente na base de dados e esta a dar erro...

queria fazer da mesma forma que esse codigo, só que nao sei como é que depois passo os valores do Dataset para a base de dados.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.