BUSCAR ATRAVES DO TEXTBOX E EXIBIR NO GRID

 Tópico anterior Próximo tópico Novo tópico

BUSCAR ATRAVES DO TEXTBOX E EXIBIR NO GRID

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#339699 - 19/04/2010 09:29:13

ALEXANDREHKK
CAMPINAS
Cadast. em:Abril/2010


Última edição em 19/04/2010 13:21:48 por ALEXANDREHKK

bom dia pessoal, uso o vb 2008 com mysql e gostaria de fazer o seguinte, tenho registros no banco e no meu form tenho um boto para pesquisar, a idia a seguinte, quero fazer um if para verificar qual campo est preenchido e pesquisar esse campo no bd e exibir o registro completo no datagrid, porm, estou encontrando uma dificuldade, no consigo fazer.... segue abaixo o meu cdigo, sou iniciante na programao e estou comeando sozinho, portanto gostaria tambm, se alguem tiver uma sugesto ela ser aceita. Obrigado

[]Create connection
        Dim conn As Common.DbConnection

        []create data adapter
        Dim da As Common.DbDataAdapter

        []create dataset
        Dim ds As DataSet = New DataSet

        []Set up connection string
        Dim cnString As String

        Dim sqlQRY As String

        Label8.Visible = True


        cnString = []datasource=192.168.25.1;username=root;password=123456;database=basededados[]



        If txtCadLogin.Text = [][] Then
            MessageBox.Show([]erro[])

        Else


            sqlQRY = []Select * from usuarios where login = [][] & txtCadLogin.Text & [][]  []  []Aqui vc coloca o Codigo do registro clicado

            conn = New MySqlConnection(cnString)

            Try
                [] Open connection
                conn.Open()

                da = New MySqlDataAdapter(sqlQRY, conn)

                []create command builder
                Dim cb As MySqlCommandBuilder = New MySqlCommandBuilder(da)

                []fill dataset  
                da.Fill(ds, []Customers[])


            Catch ex As Common.DbException
                MsgBox(ex.ToString)
            Finally
                [] Close connection
                conn.Close()
            End Try

        End If

        If txtCadNome.Text = [][] Then
            MessageBox.Show([]erro[])

        Else

            sqlQRY = []Select * from usuarios where nome = [][] & txtCadNome.Text & [][]  []  []Aqui vc coloca o Codigo do registro clicado

            conn = New MySqlConnection(cnString)

            Try
                [] Open connection
                conn.Open()

                da = New MySqlDataAdapter(sqlQRY, conn)

                []create command builder
                Dim cb As MySqlCommandBuilder = New MySqlCommandBuilder(da)

                []fill dataset  
                da.Fill(ds, []Customers[])


            Catch ex As Common.DbException
                MsgBox(ex.ToString)
            Finally
                [] Close connection
                conn.Close()
            End Try

        End If



        If cboPerm.Text = [][] Then
            MessageBox.Show([]erro[])

        Else

            sqlQRY = []Select * from usuarios where permissao = [][] & cboPerm.Text & [][]  []  []Aqui vc coloca o Codigo do registro clicado

            conn = New MySqlConnection(cnString)

            Try
                [] Open connection
                conn.Open()

                da = New MySqlDataAdapter(sqlQRY, conn)

                []create command builder
                Dim cb As MySqlCommandBuilder = New MySqlCommandBuilder(da)

                []fill dataset  
                da.Fill(ds, []Customers[])


            Catch ex As Common.DbException
                MsgBox(ex.ToString)
            Finally
                [] Close connection
                conn.Close()
            End Try

        End If
    End Sub



#339739 - 19/04/2010 17:56:38

ADHEL
PRAIA GRANDE
Cadast. em:Junho/2009


Alexandre
Se eu entendi direito na sua explicao(No no cdigo que voc postou)
Voc tem 3 caixas de texto e quer fazer a pesquisa no caixa que estiver algum contedo digitado.
Bom se for isso vou colocar um exemplo que fiz aqui para teste que pesquisa apenas uma caixa de texto.

No vou me ater a conexo ,como voc disse que j existe dados gravados, vamos l


Private Sub btnPesquisar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPesquisar.Click
        Dim da As MySqlDataAdapter
        Dim ds As DataSet


        sqlSelect = []Select Codigo,Nome,Embalagem,Marca,Quantidade,PrecoVenda from Produtos Where Nome Like []%[] & txtConsulta.Text & []%[][]

        da = New MySqlDataAdapter(sqlSelect, Conexao)
        ds = New DataSet

        da.Fill(ds, []Produtos[])
        dgvConsulta.DataSource = ds.Tables([]Produtos[]) Nessa linha voc NO colocou o seu  Datagrid

         Aqui eu defini o tamanho das colunas.O resto estava no tamanho adequado e no precisei alterar

        With dgvConsulta
            .Columns(1).Width = 300
            .Columns(2).Width = 150
            .Columns(3).Width = 200

        End With
        

  End Sub


Tente fazer com apenas uma caixa de texto e me diga o resultado.No fiz tratamento de erros,lembrando que um exemplo e aqui deu certo.





Resposta escolhida #339759 - 20/04/2010 08:28:47

KILLER
JM
Cadast. em:Março/2010


voce deveria colocar 3 radiobuttons para fazer isso, te pergunto e se o usuario digitar em duas caixas de texto como ficaria?

outra coisa, no vi se vc colocou sua grid para receber o dataset

dgv.DataSource = ds.Tables(0)

A mente que se abre a uma nova idia jamais voltar ao seu tamanho original. Albert Einstein

#339913 - 22/04/2010 10:02:39

ALEXANDREHKK
CAMPINAS
Cadast. em:Abril/2010


 Anexos estao visíveis somente para usuários registrados

bom dia pessoal, obrigado pela ajuda, no entendi muito bem, sinceramente sou perdido nessa parte do grid... gostaria que alguem me explicasse passo-a-passo por gentileza,
no meu sistema eu farei o seguinte, farei um IF para verificar qual caixa de texto est preenchida, a que tiver ele pesquisa, porm se tiver 2 caixas de texto preenchidas acho que terei um problema, assim como o killer falou...
Quero pesquisar a caixa de texto que estiver preenchida e o grid ser atualizado apenas com a pesquisa, pois no load do formulrio eu j pedi para exibir todos os registros existentes, porm quando insiro o cdigo da pesquisa ela deveria atualizar o grid com apenas o resultado da pesquisa, correto? no estou conseguindo fazer isso... vou postar meu cdigo abaixo e tambem um print do sisteminha.
Obrigado

[]Create connection
        Dim conn As Common.DbConnection

        []create data adapter
        Dim da As Common.DbDataAdapter

        []create dataset
        Dim ds As DataSet = New DataSet

        []Set up connection string
        Dim cnString As String

        Dim sqlQRY As String

        []Label8.Visible = True


        cnString = []datasource=192.168.25.1;username=root;password=123456;database=basededados[]

        sqlQRY = []Select login, senha, nome, permissao from usuarios Where login Like []%[] + txtCadLogin.Text + []%[][]


        conn = New MySqlConnection(cnString)

        Try
            [] Open connection
            conn.Open()

            da = New MySqlDataAdapter(sqlQRY, conn)

            []create command builder
            Dim cb As MySqlCommandBuilder = New MySqlCommandBuilder(da)


            []da.Fill(ds, []Customers[])
            da.Fill(ds, sqlQRY)

Catch ex As Common.DbException
            MsgBox(ex.ToString)
        Finally
            [] Close connection
            conn.Close()
        End Try



#339959 - 22/04/2010 15:52:10

KILLER
JM
Cadast. em:Março/2010


Tenta fazer assim, funciona com 1 caixa de texto

Imports MySql.Data.MySqlClient
Public Class Form1
    Dim conn As MySqlConnection
    Dim da As MySqlDataAdapter
    Dim Comando As MySqlCommand

    Private Sub txtCadLogin_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtCadLogin.TextChanged
        Dim ds As DataSet = New DataSet
        Dim sqlQRY As String

        conn = New MySqlConnection([]datasource=192.168.25.1;username=root;password=123456;database=basededados[])
        sqlQRY = []Select login, senha, nome, permissao from usuarios Where login Like []%[] + txtCadLogin.Text + []%[][]

        Try
            conn.Open()
            da = New MySqlDataAdapter(sqlQRY, conn)
            Comando = New MySqlCommand(sqlQRY, conn)
            da.SelectCommand = Comando
            da.Fill(ds)

            dgv.DataSource = ds.Tables(0)

        Catch ex As Common.DbException
            MsgBox(ex.ToString)
        Finally
            [] Close connection
            conn.Close()
        End Try
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim ds As DataSet = New DataSet
        Dim sqlQRY As String

        conn = New MySqlConnection([]datasource=192.168.25.1;username=root;password=123456;database=basededados[])
        sqlQRY = []Select login, senha, nome, permissao from usuarios []

        Try
            conn.Open()
            da = New MySqlDataAdapter(sqlQRY, conn)
            Comando = New MySqlCommand(sqlQRY, conn)
            da.SelectCommand = Comando
            da.Fill(ds)

            dgv.DataSource = ds.Tables(0)

        Catch ex As Common.DbException
            MsgBox(ex.ToString)
        Finally
            [] Close connection
            conn.Close()
        End Try
    End Sub
End Class

Qualquer dvida posta a

A mente que se abre a uma nova idia jamais voltar ao seu tamanho original. Albert Einstein

#340033 - 23/04/2010 12:37:59

ALEXANDREHKK
CAMPINAS
Cadast. em:Abril/2010


killer por favor, como devo declarar essa variavel dgv [] dgv.DataSource = ds.Tables(0)[] qual o tipo dela por gentileza,

outra dvida, eu poderia fazer um if para verificar qual caixa de texto est preenchida e pesquisar correto? bastanto apenas repetir todo o cdigo dentro de cada ELSE? obrigado





#340036 - 23/04/2010 12:58:08

ADHEL
PRAIA GRANDE
Cadast. em:Junho/2009


Alexandre

O exemplo que o Killer fez est perfeito
Esse dgv.Datasource=ds.tables(0)

dgv= o nome do datagrid , que no meu exemplo dgvConsulta o nome do datagrid
.datasource a fonte dados que carregada pelo ds(dataset)
.tables( a tabela) que voc deseja que seja carregada
sobre o if ,se mais de uma caixa estiver com conteudo?existe realmente a necessdade de pesquisar as trs??



#340039 - 23/04/2010 13:14:50

KILLER
JM
Cadast. em:Março/2010


 Anexos estao visíveis somente para usuários registrados

olha a respeito do dgv o ADHEL j te respondeu perfeitamente,

sobre as caixas, te aconselho a colocar 3 radiobuttons o usuario selecionaria por qual caixa de texto o sistema deve pesquisar,
se selecionar o primeiro ele deve desbloquer a caixa de texto txtlogin limpar e bloquear as demais

como no exemplo que estou anexando

A mente que se abre a uma nova idia jamais voltar ao seu tamanho original. Albert Einstein

#340052 - 23/04/2010 14:40:09

ALEXANDREHKK
CAMPINAS
Cadast. em:Abril/2010


muito obrigado, deu certo pessoal :D




 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por ALEXANDREHKK em 23/04/2010 14:40:45