• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Valadas

[Resolvido] Listview

26 mensagens neste tópico

Boas pessoal,

tenho um problema para ir buscar os dados à base de dados e preencher a listview nas respectivas colunas....

se me pudessem ajudar...

tenho o seguinte codigo:

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim db As New OleDbConnection(Gestao_Jogadores.My.Settings.ligacaobd)

       
        db.Open()

        
      
Dim comandosql = "Select Nome_jogador, Clube, Posicao from Perfil_Jogadores, Clubes where Nome_jogador like'" + TextBox1.Text + "%'"

        Dim cmd As New OleDbCommand(comandosql, db)

        Dim dtr As OleDbDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection)

        With Me.ListView1

            .Columns.Add("Nome", 50, HorizontalAlignment.Left)

            .Columns.Add("Clube", 50, HorizontalAlignment.Left)

            .Columns.Add("Posicao", 50, HorizontalAlignment.Left)

            .FullRowSelect = True

            .GridLines = False

            .View = View.Details

        End With

        While dtr.Read()
            ListView1.Items.Add(dtr.Item(0))

        End While

        dtr.Close()
        db.Close()
end sub

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E dá algum erro? o que nao funciona?

tenta alterar aquele ciclo para algo do genero:

Dim itmX as ListViewItem
While dtr.Read()
         itmX=new ListViewItem()
         itmX.Text= dtr.GetValue(0).ToString()

         For i as Integer =1 To i = dtr.FieldCount - 1
            itmX.SubItems.Add(dtr.GetValue(i).ToString())
         Next
         ListView1.Items.Add(itmX);
End While

EDIT: lol adicionei o code e o geshi

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Assim, e se estiver a funcionar, apenas te preenche a primeira coluna.

Tens de fazer mais ou menos isto:

Dim item As ListViewItem
While dtr.Read()

     item = New ListViewItem
     item.Text = dtr.Item(0)
     item.SubItems.Add(dtr.Item(1))
     item.SubItems.Add(dtr.Item(2))
     Me.ListView1.Items.Add(item)

End While

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado, ficou resolvido!!!! :P

utilizei o código do jpaulino e deu!!

:) ainda bem

mas tem atenção.. a unica difrenca entre o meu codigo e o dele e que ele apenas conta com os 3 campos que tu tens seleccionados...

no meu codigo podes utilizar para qualquer select que ele vai listar todos os campos seleccionados :D

E nao te esquecas de por resolvido no nome do tópico.

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

:D ainda bem

mas tem atenção.. a unica difrenca entre o meu codigo e o dele e que ele apenas conta com os 3 campos que tu tens seleccionados...

no meu codigo podes utilizar para qualquer select que ele vai listar todos os campos seleccionados :P

E nao te esquecas de por resolvido no nome do tópico.

Cumps

sim so utilizei o dele porque era mais simples e como estou no inicio foi o que percebi melhor...

outra coisa, como faço para quando abrir o form da listview carregar todos os dados guardados na bd??

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
outra coisa, como faço para quando abrir o form da listview carregar todos os dados guardados na bd??

Como assim? consegues especificar mais um pouco? nao estou a conseguir entender o que queres :S

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Como assim? consegues especificar mais um pouco? nao estou a conseguir entender o que queres :S

entao é assim, tenho uma form para pesquisa com a listview e ao abrir a form aparece vazia, e queria que aparecesse a listview ja com os dados da bd.... :S

se desse....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

entao basta colocares o codigo que tens no butao no Load do form :P

so que tens de retirar o filtro da textbox :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

entao basta colocares o codigo que tens no butao no Load do form :D

so que tens de retirar o filtro da textbox :)

ja esta!! :P

obrigado.

ja agora nao sabe se da para clicar num registo na listview e abri-lo na respectiva form!?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

lolol o que queres abrir? :P

a form onde esta o registo que aparece na listview....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Inseres isto antes do inicio da classe:

Imports System
Imports System.Windows.Forms
Imports System.Reflection

Depois crias estas duas funções:

Public Shared Function CreateObjectInstance(ByVal objectName As String) As Object
        Dim obj As Object

        Try
            If objectName.LastIndexOf(".") = -1 Then
                objectName = [Assembly].GetEntryAssembly.GetName.Name & "." & objectName
            End If

            obj = [Assembly].GetEntryAssembly.CreateInstance(objectName)

        Catch ex As Exception
            obj = Nothing
        End Try
        Return obj

    End Function

    Public Shared Function CreateForm(ByVal formName As String) As Form
        Return DirectCast(CreateObjectInstance(formName), Form)
    End Function

Depois para abrires o form que queres e facil basta saberes o nome do Form e fazes:

Dim frm As Form
frm = CreateForm("Nome_do_Form")
frm.ShowDialog()

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Dá erro na variavel frm, diz "declaration expected"... :S

Nao consigo reproduzir o teu erro...

Fizes-te tudo como eu disse ali? :S

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Nao consigo reproduzir o teu erro...

Fizes-te tudo como eu disse ali? :S

sim sim fiz tudo exacto e o unico erro e aquele... a form a abrir é form2 e meti... :s

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ja agora nao sabe se da para clicar num registo na listview e abri-lo na respectiva form!?

Tu na listview tens os nomes dos forms, é isso ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

nao, nao tenho.. :s

Então o que queres abrir ? Tens o registo e queres mostrar os detalhes desse registo através de um novo form ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Então o que queres abrir ? Tens o registo e queres mostrar os detalhes desse registo através de um novo form ?

sim.

eu tenho um form onde adiciono os registos, e outro form para fazer a pesquisa. Depois na pesquisa ao clicar no registo encontrado ir abrir o form onde o inseri... fiz-me entender? :s

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim, entendi!

Tens duas formas de o fazer:

1 - Carregas na listview todos os campos (escondes os que não queres mostrar) que precisas mostrar posteriormente no form dos detalhes, e quando chamas o form, utilizas os dados escondidos na listview (nas colunas);

2 - Tens um ID (à vista ou escondido) e quando fazes duplo cick passas como parametros para o novo form, que vai buscar os dados à db e preencher os controlos;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim, entendi!

Tens duas formas de o fazer:

1 - Carregas na listview todos os campos (escondes os que não queres mostrar) que precisas mostrar posteriormente no form dos detalhes, e quando chamas o form, utilizas os dados escondidos na listview (nas colunas);

2 - Tens um ID (à vista ou escondido) e quando fazes duplo cick passas como parametros para o novo form, que vai buscar os dados à db e preencher os controlos;

nao entendi muito bem...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Vou tentar explicar melhor:

1 - Carregas na listview todos os campos que necessitas mostras depois nos detalhes. Escondes aqueles que não queres mostrar. Depois, quando fazes duplo-clique no item ou carregas num botão, abres o form e preenches os campos do novo form com a informação que está na coluna.

2 - Na lista tens o ID, nome, descrição, etc. Quando abres o novo form dizes que esse form vai mostrar informação do registo x (que é o ID) e o form carrega da base de dados essa informação.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Qual é o evento que se tem de utilizar para fazer duplo click num registo na listview?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Qual é o evento que se tem de utilizar para fazer duplo click num registo na listview?

ListView1.MouseDoubleClick

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora