Jump to content
nelgaio

Listbox e DataGridView

Recommended Posts

nelgaio

Boas pessoal :thumbsup:

Eu tenho uma Listbox e coloquei Use Data Bound Items para aparecer as disciplinas.

Como faço para quando seleccionar na Listbox a disciplina, na DataGridView aparecer as notas só dessa disciplina? :thumbsup:

Share this post


Link to post
Share on other sites
bioshock

Voltamos ao mesmo. Tudo se resume a queries na gestão de bases de dados.

Vou começar a deixar de ajudar e a mandar links a torto e a direito, visto que, pelo que me parece, não procuraste sequer. Já te dei muito código no outro tópico e o que fizeste? Chapa-sete. Olhaste, com olhos de ver, para o código alguma vez?

http://wiki.portugal-a-programar.org/dev_net:vb.net:access

Share this post


Link to post
Share on other sites
nelgaio

Voltamos ao mesmo. Tudo se resume a queries na gestão de bases de dados.

Vou começar a deixar de ajudar e a mandar links a torto e a direito, visto que, pelo que me parece, não procuraste sequer. Já te dei muito código no outro tópico e o que fizeste? Chapa-sete. Olhaste, com olhos de ver, para o código alguma vez?

http://wiki.portugal-a-programar.org/dev_net:vb.net:access

Supostamente tenho de fazer duas queries, mas não era isso. Tipo quando selecciona na listbox tem de ter algum código para depois aparecer?

Share this post


Link to post
Share on other sites
nelgaio

Acrescentei no Preenche DataGridView isto:

WHERE [iD_Utilizador] = @ID_Utilizador and [iD_Disciplina] = @ID_Disciplina

command.Parameters.Add("@ID_Disciplina", OleDbType.Integer).Value = ListBox1.SelectedItem

Ficou algo do género:

Private Sub PreencheDataGrid()
        Dim query As String = "SELECT * FROM Notas WHERE [iD_Utilizador] = @ID_Utilizador and [iD_Disciplina] = @ID_Disciplina"
        Dim myConnectionString As String = _
                "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & Application.StartupPath & "\BD.accdb"
        Dim connection As New OleDbConnection(myConnectionString)
        Dim command As New OleDbCommand(query, connection)
        command.Parameters.Add("@ID_Utilizador", OleDbType.Integer).Value = PegaID
        command.Parameters.Add("@ID_Disciplina", OleDbType.Integer).Value = ListBox1.SelectedItem

        Dim DataAdapter As New OleDbDataAdapter(command)
        Dim MyData As New DataSet
        DataAdapter.Fill(MyData, "Notas")

        Me.NotasDataGridView.DataSource = MyData.Tables("Notas")
    End Sub

Isto assim vai funcionar? :thumbsup:

Share this post


Link to post
Share on other sites
Andrepereira9

O teu código vai funcionar.

Apenas tens que chamar "PreencheDataGrid()" no evento ListBox1.SelectedIndexChanged


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
nelgaio

O teu código vai funcionar.

Apenas tens que chamar "PreencheDataGrid()" no evento ListBox1.SelectedIndexChanged

Eu coloquei lá, mas não funciona na mesma :thumbsup:

Share this post


Link to post
Share on other sites
Andrepereira9

Aqui não dá nenhum problema. Funciona perfeitamente.

Mas dá algum erro ou simplesmente não faz nada?


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
nelgaio

Aqui não dá nenhum problema. Funciona perfeitamente.

Mas dá algum erro ou simplesmente não faz nada?

Sim, dá erro :x

Parâmetro @ID_Disciplina não tem predefinição.

Share this post


Link to post
Share on other sites
Andrepereira9

Isso acontece, porque não atribuis nenhum valor ao Parâmetro @ID_Disciplina

Não estás a carregar em nenhum espaço branco na ListBox??

Experimenta por o código dentro de um Try Catch

Private Sub PreencheDataGrid()
try
        Dim query As String = "SELECT * FROM Notas WHERE [iD_Utilizador] = @ID_Utilizador and [iD_Disciplina] = @ID_Disciplina"
        Dim myConnectionString As String = _
                "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & Application.StartupPath & "\BD.accdb"
        Dim connection As New OleDbConnection(myConnectionString)
        Dim command As New OleDbCommand(query, connection)
        command.Parameters.Add("@ID_Utilizador", OleDbType.Integer).Value = PegaID
        command.Parameters.Add("@ID_Disciplina", OleDbType.Integer).Value = ListBox1.SelectedItem

        Dim DataAdapter As New OleDbDataAdapter(command)
        Dim MyData As New DataSet
        DataAdapter.Fill(MyData, "Notas")

        Me.NotasDataGridView.DataSource = MyData.Tables("Notas")
catch
End try
    End Sub


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
nelgaio

Isso acontece, porque não atribuis nenhum valor ao Parâmetro @ID_Disciplina

Não estás a carregar em nenhum espaço branco na ListBox??

Experimenta por o código dentro de um Try Catch

Private Sub PreencheDataGrid()
try
        Dim query As String = "SELECT * FROM Notas WHERE [iD_Utilizador] = @ID_Utilizador and [iD_Disciplina] = @ID_Disciplina"
        Dim myConnectionString As String = _
                "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & Application.StartupPath & "\BD.accdb"
        Dim connection As New OleDbConnection(myConnectionString)
        Dim command As New OleDbCommand(query, connection)
        command.Parameters.Add("@ID_Utilizador", OleDbType.Integer).Value = PegaID
        command.Parameters.Add("@ID_Disciplina", OleDbType.Integer).Value = ListBox1.SelectedItem

        Dim DataAdapter As New OleDbDataAdapter(command)
        Dim MyData As New DataSet
        DataAdapter.Fill(MyData, "Notas")

        Me.NotasDataGridView.DataSource = MyData.Tables("Notas")
catch
End try
    End Sub

Agora não dá erro nenhum e não aparece nada na DataGridView xD

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.