Jump to content

consultar os dados na bd access


rjsma
 Share

Recommended Posts

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

😄

Link to comment
Share on other sites

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
Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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 😄 Se precisares de mostrar os dados, podes utilizar um OleDbDataAdapter!

Link to comment
Share on other sites

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  😄

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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 😄

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

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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.

Link to comment
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
 Share

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