none
datagrid RRS feed

  • Pergunta

  • Ola pessoal  

    To usando Vb 2008 Express e  bd  em  Access

    To com problema com datagrid tem um form. de pesquisa onde eu carrego o meu grid

    Com a Tb do meu banco  eu uso uma textbox  para digitar o cod  e um botão para realizar

    A pesquisa  só que  os dados pesquisado vem direto do bd e  eu queria  fazer a pesquisa

    Direto no grid já que  ele ta carregado com os dados da tabela  

    Ou  seja  só selecionar  a linha do gdig com os dados  e mantendo o  grid carregado

    To usando este código só que ele mim retorna com os dados direto do bd descarregando

    O meu grid e permanecendo só alinha com os valores pesquisados

    Tb_produtoBindingSource.Filter = "Cod_kr like '%" & txt_busca.Text & "%'"

     

    T+

     

    sábado, 9 de outubro de 2010 04:32

Todas as Respostas

  • Ola pessoal  

    To usando Vb 2008 Express e   bd   em   Access

    To com problema com datagrid tem um form. de pesquisa onde eu carrego o meu grid

    Com a Tb do meu banco  eu uso uma textbox   para digitar o cod  e um botão para realizar

    A pesquisa   só que  os dados pesquisado vem direto do bd e  eu queria  fazer a pesquisa

    Direto no grid já que  ele ta carregado com os dados da tabela  

    Ou   seja  só selecionar  a linha do gdig com os dados  e mantendo o  grid carregado

    To usando este código só que ele mim retorna com os dados direto do bd descarregando

    O meu grid e permanecendo só alinha com os valores pesquisados

    Tb_produtoBindingSource.Filter = "Cod_kr like '%" & txt_busca.Text & "%'"

     

    T+

     


    Amigo carregue todo seu grid e adicione um hyperlink ou botão em uma das colunas,quando o usuario clicar neste botão mostrará o detalhe da linha.

     

    abs


    Esta resposta lhe ajudou? Marque a como útil. -- www.EdgarEsteves.com.br
    domingo, 10 de outubro de 2010 10:05
  • Olá amigo,

    Bom, você poderia jogar o resultado da pesquisa em uma variavel que pode ser um IEnumerable e fazer a pesquisa dentro dessa variavel usando LINQ e quando o resultado da pesquisa for 0 vc pode bater no banco para ver se existe algum registro novo no banco que atenda a seu filtro de pesquisa.

    A sua pesquisa com LINQ seria algo +- assim :

    var result =_dados.Where(x= x.Cod_kr.Contains(txt_busca.Text))

    if(result.Count()>0) dataGrid.Datasource = result;

    else

    {

    .... Aqui tu pode bater no banco para se certificar que não existe algum registro novo que atenda a sua pesquisa.

    segunda-feira, 11 de outubro de 2010 13:03
  • Olá amigo,

    Bom, você poderia jogar o resultado da pesquisa em uma variavel que pode ser um IEnumerable e fazer a pesquisa dentro dessa variavel usando LINQ e quando o resultado da pesquisa for 0 vc pode bater no banco para ver se existe algum registro novo no banco que atenda a seu filtro de pesquisa.

    A sua pesquisa com LINQ seria algo +- assim :

    var result =_dados.Where(x= x.Cod_kr.Contains(txt_busca.Text))

    if(result.Count()>0) dataGrid.Datasource = result;

    else

    {

    .... Aqui tu pode bater no banco para se certificar que não existe algum registro novo que atenda a sua pesquisa.


    Ola Daniel Porfírio o brigado pela dica do link

    Mais eu  quero realizar a pesquisa  direto no grid ou seja

    Tenho uma  texbox1.text  onde digito o cód_kr   dou um Crick no botão  busca e ele varre o meu grid

    Encontrado  o código   selecionar a linha com as informações  dexando  na cor azul

    Se vc puder mim dar uma dica como fazer  ti agradeço

    T+

    terça-feira, 12 de outubro de 2010 01:36
  • Judivan, vê se é isso que precisa:

        'Varre Todas as Linhas
        For Each linha As DataGridViewRow In DataGridView1.Rows
          'Varre Todas as Colunas
          For Each coluna As DataGridViewColumn In DataGridView1.Columns
            'Verifica se a linha não é nula e se o Valor da Célula é Igual ao do TextBox
            If linha.Cells(coluna.Index).Value IsNot Nothing AndAlso _
               linha.Cells(coluna.Index).Value.ToString = TextBox1.Text Then

              'Muda a cor do Fundo da Célula
              linha.DefaultCellStyle.BackColor = Color.Blue
            End If
          Next
        Next

    Se não for, posta sua dúvida. :)


    Bruno Ferreira de Souza
    Analista Desenvolvedor .NET
    MCP - Windows Form
    terça-feira, 12 de outubro de 2010 02:40
  • Judivan, vê se é isso que precisa:

        'Varre Todas as Linhas
        For Each linha As DataGridViewRow In DataGridView1.Rows
          'Varre Todas as Colunas
          For Each coluna As DataGridViewColumn In DataGridView1.Columns
            'Verifica se a linha não é nula e se o Valor da Célula é Igual ao do TextBox
            If linha.Cells(coluna.Index).Value IsNot Nothing AndAlso _
               linha.Cells(coluna.Index).Value.ToString = TextBox1.Text Then

              'Muda a cor do Fundo da Célula
              linha.DefaultCellStyle.BackColor = Color.Blue
            End If
          Next
        Next

    Se não for, posta sua dúvida. :)


    Bruno Ferreira de Souza
    Analista Desenvolvedor .NET
    MCP - Windows Form

    Valeu bruno  e quase isto ele funciona e faz a pesquisa mais quando vou fazer  outra pesquisa

    A  linha pesquisa anterior  continua selecionada e não desabilita ou seja si eu fizer 30 pesquisa

    Vai ficar as 30 em azul travada

    Para eu ser mais especifico eu quero realizar a minha pesquisa igual a do Excel

    Si vc poder mim ajudar fico muito agradecido bruno

    T+

     judivan

    terça-feira, 12 de outubro de 2010 04:42
  • Coloca um Else na condição assim:

            If linha.Cells(coluna.Index).Value IsNot Nothing AndAlso _
               linha.Cells(coluna.Index).Value.ToString = TextBox1.Text Then

              'Muda a cor do Fundo da Célula
              linha.DefaultCellStyle.BackColor = Color.Blue
            Else
              linha.DefaultCellStyle.BackColor = Color.White

            End If


    Bruno Ferreira de Souza
    Analista Desenvolvedor .NET
    MCP - Windows Form
    terça-feira, 12 de outubro de 2010 14:20
  • Coloca um Else na condição assim:

            If linha.Cells(coluna.Index).Value IsNot Nothing AndAlso _
               linha.Cells(coluna.Index).Value.ToString = TextBox1.Text Then

              'Muda a cor do Fundo da Célula
              linha.DefaultCellStyle.BackColor = Color.Blue
            Else
              linha.DefaultCellStyle.BackColor = Color.White

            End If


    Bruno Ferreira de Souza
    Analista Desenvolvedor .NET
    MCP - Windows Form

    Ola  bruno com o Else que vc mandou  continua  da mesma forma  permanece travado

    So que na cor branca ou seja não fax a pesquisa

    No lugar do Else eu fiz o seguinte

      'Varre Todas as Linhas
        For Each linha As DataGridViewRow In DataGridView1.Rows
          'Varre Todas as Colunas
          For Each coluna As DataGridViewColumn In DataGridView1.Columns
            'Verifica se a linha não é nula e se o Valor da Célula é Igual ao do TextBox
            If linha.Cells(coluna.Index).Value IsNot Nothing AndAlso _
               linha.Cells(coluna.Index).Value.ToString = TextBox1.Text Then

                                DataGridView1.SelectAll() este funciona so que mim celecina o grid todo  tentei outro so para celecinar a linha

                     DataGridView1.SelectedRows este que seria o correto para mim celecinar  a linha  so que da  erro

     

                     End If
          Next
        Next

    Bruno desculpa ta ti incomodando mais e que com o datagridview to apanhando um pouco

    As literaturas sobre o datagridview  são um pouco confusa

    T+

     judivan

    terça-feira, 12 de outubro de 2010 19:27
  • Judivan,

    Conseguiu solucionar essa sua questão?


    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima
    sexta-feira, 24 de dezembro de 2010 11:28
    Moderador