Ir para o conteúdo
Valadas

[Resolvido] Listview

Mensagens Recomendadas

Valadas    0
Valadas

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Hellblazer    0
Hellblazer

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
jpaulino    106
jpaulino

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Hellblazer    0
Hellblazer

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Valadas    0
Valadas

: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??

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Hellblazer    0
Hellblazer
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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Valadas    0
Valadas

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....

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Valadas    0
Valadas

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!?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Hellblazer    0
Hellblazer

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()

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Valadas    0
Valadas

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
jpaulino    106
jpaulino

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 ?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Valadas    0
Valadas

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
jpaulino    106
jpaulino

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;

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Valadas    0
Valadas

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...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
jpaulino    106
jpaulino

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.

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


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade