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

ricduarte

pesquisa e datagrid

Mensagens Recomendadas

ricduarte    0
ricduarte

boas!

tenho mais um problema. tou a fazer um projeto de final de curso e queria fazer uma coisa mas nao tou a conseguri safar-me. o que queria fazer é o seguinte:

tenho uma datagridview e uma caixa de pesquisa e eu queria que ao pesquisar por um só nome, me aparecessem todos os resultados que tenham esse nome. por exemplo, pesquisavba por Manuel e queria que me aparecessem todos os nomes que tenham Manuel.

será que me podem ajudar??

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
ricduarte    0
ricduarte

o que quero é: escrevo o nome na textbox, de seguida clico no botao para pesquisar e depois de clicar no botao queria que me aparecessem os vários resultados com o nome com que a pesquisa foi feita

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
ricduarte    0
ricduarte

o código que tenho é pa pesquisar um so valor

Dim query As String = "SELECT * FROM Clientes WHERE Nome = @Nome"

Dim command As New OleDbCommand(query, ConnectionString)

command.Parameters.Add("@Nome", OleDbType.Char).Value = pesquisanome.Text

Dim DataAdapter As New OleDbDataAdapter(command)

Dim MyData As New DataSet

DataAdapter.Fill(MyData, "Clientes")

ConnectionString.Open()

Dim dr As OleDbDataReader = command.ExecuteReader(CommandBehavior.SingleRow)

If pesquisanome.Text = "" Then

MsgBox("Nenhum nome foi inserido!", vbExclamation, "Erro!")

GoTo Loop_Strat

End If

If dr.HasRows Then

dr.Read()

idtb.Text = dr.Item(0).ToString

nometb.Text = dr.Item(1).ToString

moradatb.Text = dr.Item(2).ToString

cptb.Text = dr.Item(3).ToString

localidadetb.Text = dr.Item(4).ToString

telefonetb.Text = dr.Item(5).ToString

telemoveltb.Text = dr.Item(6).ToString

contribuintetb.Text = dr.Item(7).ToString

Me.tabela.DataSource = MyData.Tables("Clientes")

Else

Dim testMsg As Integer

testMsg = MsgBox("Registo não encontrado!", vbExclamation, "Erro!")

End If

ConnectionString.Close()

command = Nothing

Loop_Strat:

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
ricduarte    0
ricduarte

boas!

NunoDinis ja experimentei alterar o meu codigo por aquele que me deste mas mesmo assim deu erro. ja nao sei o que fazer

Editado por ricduarte

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
ricduarte    0
ricduarte

quando faço a pesquisa, ja com o codigo colocado, o VB dá-me um erro a dizer que a OleDbException não foi manipulada. alguem sabe o que fazer? nao tenho conseguido encontrar nada em outros foruns na net

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
NunoDinis    40
NunoDinis

Coloca o código que tens aqui, com as tags direitinhas, senão é muito complicado para interpretarmos o código.


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
ricduarte    0
ricduarte
Private Sub pesquisa_Click(sender As Object, e As EventArgs) Handles pesquisa.Click
Dim ConnectionString As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\Users\Ricardo\Desktop\Agrigest\Agrigest.accdb")
Dim query As String = "SELECT * FROM Clientes WHERE Nome = LIKE '%" & pesquisanome.text & "%'"
Dim command As New OleDbCommand(query, ConnectionString)
command.Parameters.Add("@Nome", OleDbType.Char).Value = pesquisanome.Text
Dim DataAdapter As New OleDbDataAdapter(command)
Dim MyData As New DataSet
DataAdapter.Fill(MyData, "Clientes")

ConnectionString.Open()
Dim dr As OleDbDataReader = command.ExecuteReader(CommandBehavior.SingleRow)
If pesquisanome.Text = "" Then
 MsgBox("Nenhum nome foi inserido!", vbExclamation, "Erro!")
 GoTo Loop_Strat
End If
ConnectionString.Close()
command = Nothing
Loop_Strat:

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Tiago Simões Marques    1
Tiago Simões Marques

Private Sub pesquisa_Click(sender As Object, e As EventArgs) Handles pesquisa.Click
Dim ConnectionString As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\Users\Ricardo\Desktop\Agrigest\Agrigest.accdb")
Dim query As String = "SELECT * FROM Clientes WHERE Nome = LIKE '%" & pesquisanome.text & "%'"
Dim command As New OleDbCommand(query, ConnectionString)
command.Parameters.Add("@Nome", OleDbType.Char).Value = pesquisanome.Text
Dim DataAdapter As New OleDbDataAdapter(command)
Dim MyData As New DataSet
DataAdapter.Fill(MyData, "Clientes")

ConnectionString.Open()
Dim dr As OleDbDataReader = command.ExecuteReader(CommandBehavior.SingleRow)
If pesquisanome.Text = "" Then
 MsgBox("Nenhum nome foi inserido!", vbExclamation, "Erro!")
 GoTo Loop_Strat
End If
ConnectionString.Close()
command = Nothing
Loop_Strat:

Acho que não é preciso tanta coisa, a uma linha de código que te filtra directo no datagridview. Se quiseres tenho para aqui algures.


Tiago Simões Marques

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
bioshock    169
bioshock

A tua query está mal..estás-lhe a dizer (Nome = Like) e deve ser (Nome LIKE), entre outras coisas:

Dim ConnectionString As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\Users\Ricardo\Desktop\Agrigest\Agrigest.accdb")
Dim query As String = "SELECT * FROM Clientes WHERE Nome LIKE '%@nome%'"
Dim command As New OleDbCommand(query, ConnectionString)
command.Parameters.Add("@nome", OleDbType.Char).Value = pesquisanome.Text
connection.Open()
Dim reader As SqlDataReader = command.ExecuteReader()
  While reader.Read
 MsgBox(reader(0).ToString())
  End While
connection.Close()

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
ricduarte    0
ricduarte

Boas pessoal!

já tentei todas as soluções que foram propostas neste tópico mas infelizmente nenhuma delas funcionou. Já nao sei mais o que fazer!

Preciso URGENTEMENTE de ajuda!!!

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
ricduarte    0
ricduarte

whize13 tentei con este código e simplesmente nao fez nada, nao deu erro, nao deu nada, é como se o botão nao tivesse código.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
whize13    1
whize13

era mais para substituires a parte referente a tabela claro que mantinhas o resto do codigo pre e pos SELECT * FROM Clientes WHERE Nome LIKE '%" & pesquisanome.text & "%'"

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