none
Pesquisa em DataGridVieu RRS feed

  • Pergunta

  • Oi pessoal como boa noite para todos.

    Estou desenvolvendo um sistema para controle de entrada e saida de material de almoxarifado, e tem um forme que eu faça

    pesquisa por (nome, Cardex, maquina e local) em um DataGrid, com a pesquisa está tudo correndo bem, depois que faça uma pesquisa no grid e clico em cima de uma linha carregar as informações nos textBox correspondentes. O problema é que quando digito uma letra no textbox de pesquisa e seleciono uma linha no grid garrega as informações erradas nos textbox.      Porem, se o campo de pesquisa estiver limpo e eu selecionar uma linha do grid ai ele carrega as informações corretamente nos textbox. segue o codigo de pesquisa abaixo:

    se alguem poder me ajudar eu agradeço 

     

    Public Class PesquisaMNcontrolado
        Dim acod_estoque(1) As Integer
        Dim anome(1) As String
        Dim acod_fabricante(1) As String
        Dim acardex(1) As String
        Dim amaquina(1) As String
        Dim alocal(1) As String
        Dim aqtdAtual(1) As Integer
        Dim aqtdmaterial(1) As Integer
        Dim adescricao(1) As String
        Dim acamfoto(1) As String
        Dim aimg(1) As String
        Dim aqtdMinimo(1) As Integer
        Dim vmodo As String = "X"
        Private Sub PesquisaMNcontrolado_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            carrega_usuarios()
            cbmTipoPesq.Text = "Nome"
            desab_campos()
        End Sub
        Private Sub carrega_usuarios()
            
            Dim cs As String = My.Settings.EstoqueConnectionString
            Dim conect As New OleDb.OleDbConnection
            conect.ConnectionString = cs
            conect.Open()
            Dim selcom As New OleDb.OleDbCommand
            selcom.Connection = conect
            selcom.CommandText = "SELECT * FROM tb_estoque ORDER BY nome_produto"
            Dim vleitor As OleDb.OleDbDataReader
            vleitor = selcom.ExecuteReader
            Dim c As Integer = 0
            dgvEstoque.Rows.Clear()
            Do While vleitor.Read
                c = c + 1
                ReDim Preserve acod_estoque(c)
                ReDim Preserve anome(c)
                ReDim Preserve acod_fabricante(c)
                ReDim Preserve acardex(c)
                ReDim Preserve amaquina(c)
                ReDim Preserve alocal(c)
                ReDim Preserve aqtdAtual(c)
                ReDim Preserve aqtdmaterial(c)
                ReDim Preserve adescricao(c)
                ReDim Preserve acamfoto(c)
                ReDim Preserve aimg(c)
                ReDim Preserve aqtdMinimo(c)
                acod_estoque(c) = vleitor("codigo_estoque")
                anome(c) = vleitor("nome_produto")
                acod_fabricante(c) = vleitor("codigo_fabricante")
                acardex(c) = vleitor("cardex_produto")
                amaquina(c) = vleitor("maquina")
                alocal(c) = vleitor("local_produto")
                If IsDBNull(vleitor("qtd_atual")) Then
                    aqtdAtual(c) = 0
                Else
                    aqtdAtual(c) = vleitor("qtd_atual")
                End If
                If IsDBNull(vleitor("qtd_material")) Then
                    aqtdmaterial(c) = 0
                Else
                    aqtdmaterial(c) = vleitor("qtd_material")
                End If
                adescricao(c) = vleitor("descricao_produto")
                If IsDBNull(vleitor("cam_foto")) Then
                    acamfoto(c) = ""
                Else
                    acamfoto(c) = vleitor("cam_foto")
                End If
                If IsDBNull(vleitor("cam_foto")) Then
                    aimg(c) = ""
                Else
                    aimg(c) = vleitor("cam_foto")
                End If
                If IsDBNull(vleitor("qtd_minimo")) Then
                    aqtdMinimo(c) = 0
                Else
                    aqtdMinimo(c) = vleitor("qtd_minimo")
                End If
                If cbmTipoPesq.Text = "Nome" Then
                    If anome(c).ToUpper.Contains(txtPesquisa.Text.ToUpper) Then
                        dgvEstoque.Rows.Add(anome(c), acardex(c), amaquina(c), alocal(c))
                    End If
                End If
                If cbmTipoPesq.Text = "Maquina" Then
                    If amaquina(c).ToUpper.Contains(txtPesquisa.Text.ToUpper) Then
                        dgvEstoque.Rows.Add(anome(c), alocal(c), acardex(c), amaquina(c))
                    End If
                End If
                If cbmTipoPesq.Text = "Cardex" Then
                    If acardex(c).ToUpper.Contains(txtPesquisa.Text.ToUpper) Then
                        dgvEstoque.Rows.Add(anome(c), alocal(c), acardex(c), amaquina(c))
                    End If
                End If
            Loop
            conect.Close()
        End Sub
        Private Sub carrega_campos()
            Dim ind As Integer = dgvEstoque.CurrentRow.Index + 1
            txtNome.Text = anome(ind)
            txtCodFabricante.Text = acod_fabricante(ind)
            txtCardex.Text = acardex(ind)
            txtMaquina.Text = amaquina(ind)
            txtLocal.Text = alocal(ind)
            txtAtual.Text = aqtdAtual(ind)
            txtDescricao.Text = adescricao(ind)
            If aimg(ind) = "" Then
                PictureBox1.Image = Nothing
            Else
                PictureBox1.Image = Image.FromFile(aimg(ind))
            End If
            txtMinimo.Text = aqtdMinimo(ind)
            txtCardexUsado.Text = acardex(ind)
            txtDescProduto.Text = anome(ind)
        End Sub
        Private Sub dgvEstoque_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles dgvEstoque.SelectionChanged
            carrega_campos()
            desab_campos()
        End Sub
        Private Sub txtPesquisa_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtPesquisa.TextChanged
            carrega_usuarios()
        End Sub

    quinta-feira, 26 de julho de 2012 00:59

Respostas

Todas as Respostas