Jump to content
Sr Inovação

Só mostra o primeiro registo do Dataset

Recommended Posts

Sr Inovação

Boa noite, estou desenvolver um projecto em VB.net e Sql Server,ja criei a Base de dados, e passei a programar do Vb.net.

Eu criei um formulário com textboxes e outros  controlos, carreguei os dados da BD nas respectivas caixas de textos ,e claro que para isso fiz primeiro um dataset em runtime ,e um currency manager até aí, parece tudo bem

Mas o problema é:Eu,para testar o programa resolvi inserir dois registos através Database Explorer,mas quando executo o programa outra vez,ele só me mostra o primeiro registo no form,preciso da ajuda para se vejo alguma solução para este problema

Obrigado desde já

Aqui fica algum código

   Private Sub fill_formPessoa()
        'Abre a connecção com a Base de dados 
        Try
            frmMainForm.connection.Open()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try

        'Cria uma novo comando para depois ser criada e executada uma nova query(consulta)
        cmdGetPessoas = frmMainForm.connection.CreateCommand()
        cmdGetPessoas = New SqlCommand("Select * from memb_agreg_fam", frmMainForm.connection)

        'Só os dados filtados pela query vão para o DataAdapter
        daGetPessoas.SelectCommand = cmdGetPessoas
        daGetPessoas.Fill(dsPessoas, "InfoPessoas")
        txtId_pessoa.DataBindings.Add("Text", dsPessoas.Tables(0), "Id_pessoa")
        txtFirstName.DataBindings.Add("Text", dsPessoas.Tables(0), "Nome")
        txtApelido.DataBindings.Add("Text", dsPessoas.Tables(0), "Apelido")
        cbSexo.DataBindings.Add("Text", dsPessoas.Tables(0), "Genero")
        dtpDataNasc.DataBindings.Add("Text", dsPessoas.Tables(0), "Data_de_nascimento")
        cmnavegar = CType(Me.BindingContext(dsPessoas), CurrencyManager)
        frmMainForm.connection.Close()
    End Sub

Share this post


Link to post
Share on other sites
bioshock

Usa-me tag-code adequado à linguagem.

Relativamente ao teu problema, simples: como raio pretendes colocar todos os registos numa simples Textbox? (por acaso até podes, mas fica mal) A não ser que coloques a mesma como multi-line..

Partindo do pressuposto que não está em multi-line, esse código que aí tens devias de o ter para seleccionares um registo em específico, ou seja, em vez de teres a seguinte query:

SELECT abc FROM Tabela

Deverias de ter:

SELECT abc FROM Tabela WHERE Codigo = 3

Neste último caso, estarias a seleccionar apenas o registo com o código número 3 e aí fazia todo o sentido o código que colocaste em cima.

Se pretendes mostrar múltiplos registos, existem vários objectos para interfaces mais agradáveis, tais como: Datagridviews, Listviews. Nesta situação, o código que possuis também já faz 50% do trabalho, para obteres os 100%  apenas precisas de fazer um Loop (ciclo) para obter todos os registos.

Há algum tempo criei um artigo no meu blog, onde tens um exemplo de como preencher uma Datagridview com informação da BD e com progressbar para determinar o tempo.

Share this post


Link to post
Share on other sites
Sr Inovação

Boas,bioshock,eu experimentei o que disseste e de facto resulta, mas problema é:os registos  são carregados para o Dataset com base na query,eu quero que sejam carregados todos os dados para esse Dataset permitindo também saber o total de registos naquela tabela (daí aquele select *) se eu puser  um where, o dataset só ficará carregado com um registo á mesma

Alguma sugestão?

Share this post


Link to post
Share on other sites
Sr Inovação

Secalhar expliquei - me mal, fiz um dataset (dsPessoas) em runtime, e para preencher o Dataset, com todos os registos da minha tabela memb_agreg  fiz um Select * from memb_agreg certo?

Acho que sou obrigado a fazer este query para que o Dataset fique preenchido com todos os registos dessa tabela e isto serve tambem para quando ultilizo o count do currency manager  , mas se eu fizer só um query com where já fico com um registo diferente do que 1ºregisto,mas também só mostra aquele determinado registo.

Tenho um currency manager e queria que ele navegasse por todos os registos e não mostrasse só um registo

Obrigado Bioshock, pela pagina de SQL queries ok ainda me pode ser muito útil,  mas acho que agora já foi mas perceptível na explicação e se poderem continuar a ajudar agradecia ok?

Share this post


Link to post
Share on other sites
bioshock

Se bem percebi o que tu queres é um navegador de registos. Bem, para isso deixo-te este link.

Nesse caso continuas com a tua query de eleição:

SELECT * FROM Tabela

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.