Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

AMC

Filtrar dados no DataGridView

Recommended Posts

Olá galera, boa tarde

 

 

Tenho um DataGridView que recebe o seguintes dados(ID,Nome,Endereço,Telefone).

Um MaskedTextBox com o evento TextChanged ativado.

Gostaria de saber como fazer um filtro onde: Digito o nome da pessoa EX: Ana no MaskedTextBox e o grid

automaticamente me mostra todos os "ANA" ocultando os outros dados do Grid.

 

 

Banco SQLSERVER + VB.NET

 

 

Fiz ele como segue abaixo, só que desta maneira ele não oculta os outros valores que estão fora da faixa de pesquisa.

 

Public Sub Pesquisar(ByVal Nome As String)

		Dim Comando As SqlCommand = New SqlCommand
		Dim Reader As SqlDataReader
		
		Try
			AbreConexão()

			Comando.Connection = Conexão
			Comando.CommandType = CommandType.Text
			Comando.Parameters.AddWithValue("PNOME", Nome)
			Comando.CommandText = "SELECT [ID], [NOME], [ENDEREÇO], [TELEFONE] FROM CLIENTE WHERE (NOME LIKE @PNOME)"
			Reader = Comando.ExecuteReader

			While Reader.Read
				DataGridView1.CurrentRow.Cells(0).Value = Reader("ID").ToString
				DataGridView1.CurrentRow.Cells(1).Value = Reader("NOME").ToString
				DataGridView1.CurrentRow.Cells(2).Value = Reader("ENDEREÇO").ToString
				DataGridView1.CurrentRow.Cells(3).Value = Reader("TELEFONE").ToString

			End While
		Catch ex As Exception
			MessageBox.Show("Não foi possivel fazer pesquisa", ex.Message)
		Finally
			FechaConexão()
		End Try
	   
	End Sub

 

Desde já agradeço a atenção

Compartilhar este post


Link para o post
Compartilhar em outros sites

É porque você precisa limpar a grid, tente isso:

dgv.Rows.Clear();

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa Noite AMC

 

Vou te passar uma sub para voce filtrar os dados, so que para isto voce tem que conhecer um pouco de sql.

 

Este bloco voce deve colocar no topo de um modulo

 

Imports System.Data.SqlClient
Imports System.Data.DataSet
Imports System.Data.DataTable

Module Funcao





End Module

 

 

E esta sub voce coloca no modulo.

 

 

Sub Filtrar(ByVal SQL As String, ByVal Grade As DataGridView)
		Dim Cont As Long = 0, Posicao As String
		On Error GoTo erro
		'seta a conexao existente
		Using myConnection As New SqlConnection(Coloque aqui a string de sua conexão)
			'cria a variavel de comando para a conexao ativa
			Dim myCmd As SqlCommand = myConnection.CreateCommand()
			'Abre a conexao
			myConnection.Open()
			'especifica o tipo de comando a ser usado
			myCmd.CommandType = CommandType.Text
			'recebe os parametro sql para filtrar os registro
			myCmd.CommandText = SQL
			'Acribui o camdo sql para o DataAdapter
			Dim myDataAdapter As SqlDataAdapter = New SqlDataAdapter(myCmd)
			'Cria a instacia do DataSet
			Dim myDataSet As DataSet = New DataSet()

			'Linca o DataSet com o DataAdapter
			myDataAdapter.Fill(myDataSet)

			'Linca o DataSet com a Grade
			Grade.DataSource = myDataSet.Tables(0)
			Grade.EditMode = DataGridViewEditMode.EditProgrammatically

		End Using
		Exit Sub
erro:
		MsgBox("Erro ao filtrar os dados", MsgBoxStyle.Information + MsgBoxStyle.ApplicationModal)
	End Sub

 

Abaixo segue um exemplo, de como se passa os parâmetro para a sub

 

Filtrar "Select * From Tabela Where Codigo=" & txtCodigo.text,DataGridView1

 

 

Espero que te ajude.

 

Este codigo funciona com vb8 e vb9

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.