Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

rjsma

consultar os dados na bd access

Mensagens Recomendadas

rjsma

boas

tenho andado a fazer umas pesquisa pelo o google e tambem aqui no forum haver se consigo compreender como consigo fazer fazer uma consulta numa bd access (pesquisa).No google não encontrei assim nada que me podesse ajudar e aqui no portugal-a-programar encontrei isto  http://wiki.portugal-a-programar.org/visual_basic_.net:gestao_bases_dados_access

Penso que eu precisava era de usar o metodo .ExecuteReader mas como não fiz a ligação ao vb por via codigo mas sim por wizards penso que terei de fazer de outra maneira(por wizard), estou certo?

abraço

:D

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

O .ExecuteReader serve para verificar se existem "linhas" na BD, se existe informação na BD. Caso exista informação ele faz os procedimentos, caso contrário Error!

O .ExecuteReader é muito usado para Logins via BD, não sei se era a isso que te estavas a referir, mas se é, tens obrigatoriamente que fazer unha-a-unha.

Código do .ExecuteReader:

        Dim reader As OleDbDataReader = Command.ExecuteReader()
        ' Caso existam registos;
        If reader.HasRows Then
            ' Fez login com sucesso!;
            MessageBox.Show("Fez login com sucesso!", My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Information)
        Else
            ' Caso os dados inseridos nas textboxs estejam incorrectos;
            MessageBox.Show("Dados incorrectos, volte a tentar.", My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Error)
        End If

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
rjsma

eu não queria fazer um sistema de login, isso eu sei fazer, a minha duvida é ao criar um tipo de motor de buscar para que possa fazer pesquisa dos dados armazenados na bd, pensava que tinha de usar uma coisa do tipo executereader mas parece que não.Como fiz a ligacao a bd por wizards deve tambem ser por ai que crio as consultas

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
rjsma

Criei uma query agora penso que tenho de associar a query ao botao de pesquisa ou uma coisa parecida utilizando o codigo sql que me deu

SELECT Id_animal, Nome_animal, descrição, imagem FROM animal

não se se estou a fazer as coisas como deve ser

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jpaulino

O .ExecuteReader serve para verificar se existem "linhas" na BD, se existe informação na BD. Caso exista informação ele faz os procedimentos, caso contrário Error!

O .ExecuteReader é muito usado para Logins via BD, não sei se era a isso que te estavas a referir, mas se é, tens obrigatoriamente que fazer unha-a-unha.

Errado!

O método .ExecuteReader() serve para retornar registos da base de dados e não para verificar se existem registos ... não dá erro, apenas não retorna nada. Pelo menos foi o que entendi na tua explicação.

Para um login, e caso não se precise de retornar nada (por exemplo o nome, nivel de acesso, etc), como no teu exemplo, utiliza-se um ExecuteNonQuery() porque é mais rápido a executar (adaptando a query é claro).

Ah, tens de fazer pelos TablesAdapters as queries.

Aqui sim :D Se precisares de mostrar os dados, podes utilizar um OleDbDataAdapter!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

Criei uma query agora penso que tenho de associar a query ao botao de pesquisa ou uma coisa parecida utilizando o codigo sql que me deu

SELECT Id_animal, Nome_animal, descrição, imagem FROM animal

não se se estou a fazer as coisas como deve ser

Criaste a query por onde? Pelo TableAdapter? Se sim, tens é de especificar a textbox (que é onde vais escrever a informação que desejas procurar na BD), algo como:

SELECT  Id_animal, Nome_animal, descrição, imagem FROM Tabela WHERE campo LIKE '%NomeDaTextBox%'

  » Penso que seja isto!

Errado!

O método .ExecuteReader() serve para retornar registos da base de dados e não para verificar se existem registos ... não dá erro, apenas não retorna nada. Pelo menos foi o que entendi na tua explicação.

Para um login, e caso não se precise de retornar nada (por exemplo o nome, nivel de acesso, etc), como no teu exemplo, utiliza-se um ExecuteNonQuery() porque é mais rápido a executar (adaptando a query é claro).

Aqui sim :) Se precisares de mostrar os dados, podes utilizar um OleDbDataAdapter!

Expliquei-me mal, não era essa a informação que eu queria transmitir. Quando disse "Error" não era propriamente a dizer que dava erro, peço desculpa  :D

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
rjsma

sim fiz pelo tableadapter, ponho o codigo sql dentro da query?mas se eu nao quiser por todos os dados na mesma textbox mas sim em varios, como por exemplo, nome do animal na textbox 1, descrição na textbox2, imagem na picturebox, etc, não seria dessa maneira pois não?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

SELECT  Id_animal, Nome_animal, descrição, imagem FROM Tabela WHERE campo LIKE '%NomeDaTextBox%'

Convém estudares um pouco sobre queries. Procura manuais no google ou algo do género, senão não vais lá.

Neste SELECT, estamos a seleccionar os campos: Id_animal, Nome_animal, descrição, imagem, FROM Tabela (Neste caso alteras Tabela para o nome da tabela onde estão estes campos) WHERE campo (alteras o campo para o nome do campo que desejas procurar na textbox, por exemplo: WHERE Nome_animal) LIKE %NomeDaTextBox%' ( igual ao que foi digitado na textbox); Esta query, se estiver bem feita, será adicionada na aplicação. Depois basta copiares o código e meteres no botão "pesquisar".

Feito isto, tens que fazer uma query para cada procura na BD que queiras fazer.

EDIT: Vê este exemplo: http://www.macoratti.net/vbn_foan.htm

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jpaulino

Expliquei-me mal, não era essa a informação que eu queria transmitir. Quando disse "Error" não era propriamente a dizer que dava erro, peço desculpa  :)

Não tens de pedir desculpa ... estás a tentar ajudar :D

É preciso é ter cuidado como se explica para não causas confusão!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

Não tens de pedir desculpa ... estás a tentar ajudar :)

É preciso é ter cuidado como se explica para não causas confusão!

Vou ter mais cuidado para a próxima  :D

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
rjsma

SELECT  Id_animal, Nome_animal, descrição, imagem FROM Tabela WHERE campo LIKE '%NomeDaTextBox%'

Convém estudares um pouco sobre queries. Procura manuais no google ou algo do género, senão não vais lá.

Neste SELECT, estamos a seleccionar os campos: Id_animal, Nome_animal, descrição, imagem, FROM Tabela (Neste caso alteras Tabela para o nome da tabela onde estão estes campos) WHERE campo (alteras o campo para o nome do campo que desejas procurar na textbox, por exemplo: WHERE Nome_animal) LIKE %NomeDaTextBox%' ( igual ao que foi digitado na textbox); Esta query, se estiver bem feita, será adicionada na aplicação. Depois basta copiares o código e meteres no botão "pesquisar".

Feito isto, tens que fazer uma query para cada procura na BD que queiras fazer.

EDIT: Vê este exemplo: http://www.macoratti.net/vbn_foan.htm

eu compreendo o codigo sql, eu no ano passado nas aulas dei 2 meses de mysql, não estava era a compreender bem a utilização das query, penso ja percebi

fazo uma query para cada um dos campos e depois coloco o codigo no botão de pesquisa

SELECT  Id_animal, Nome_animal, descrição, imagem FROM animal WHERE descrição LIKE '%textbox1%'

SELECT  Id_animal, Nome_animal, descrição, imagem FROM animal WHERE nome_animal LIKE '%textbox2%'

é desta maneira?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
rjsma

ja fiz as querys todas so estou com um problema em por o codigo a rular

        SELECT  Nome_animal, descrição, imagem FROM animal WHERE descrição LIKE '%textbox1%'
        End Select
        Select Nome_animal, descrição, imagem FROM animal WHERE nome_animal LIKE '%textbox2%'
        End Select

penso que so seja necessário isto, não é?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

Bem, fui ver uma aplicação antiga que eu tinha e lá fiz de forma diferente, experimenta isto:

Escolhe o TableAdapter;

http://img88.imageshack.us/i/imagem1n.jpg/

Faz a selecção dos dados, e mete igual à imagem;

http://img695.imageshack.us/i/imagem2y.jpg/

No topo, é criado o FillBy, clicas no botão, e deve-te aparecer algo idêntico:

http://img337.imageshack.us/i/imagem3o.jpg/

Private Sub FillBy4ToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FillBy4ToolStripButton.Click
        Try
            Me.TAlunosTableAdapter.FillBy4(Me.BasedeDadosDataSet.TAlunos, New System.Nullable(Of Integer)(CType(NrAlunosToolStripTextBox.Text, Integer)))
        Catch ex As System.Exception
            System.Windows.Forms.MessageBox.Show(ex.Message)
        End Try

    End Sub

Trocas a linha "NrAlunosToolStripTextBox.Text" pela tua Textbox de pesquisa, e metes o código num botão.

Edit: Enganei-me na ordem das imagens, agora já está correcto.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

Tu tens de fazer as queries para cada pesquisa que queiras fazer, nada mais. Se só queres fazer uma pesquisa, fazes só uma query.

Partilhar esta mensagem


Ligação 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. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.