none
como trocar o LIKE para pesquisar int VB.NET RRS feed

  • Pergunta

  • Galera sou iniciante!
    quero pesquisar no datagrid um campo mais esse codigo e tipo INT e like nao busca nele
    como posso parabuscaR?

    uso vs 2008 sql 2005
    alguem ajuda ? 

                Dim dv As DataView = Me.dgBuscaFornecedor.DataSource
                dv.RowFilter = " CODIGO_FORNECEDOR like '%" & Me.txtBusca.Text & "%'"
                Me.dgBuscaFornecedor.DataSource = dv
    sexta-feira, 5 de junho de 2009 01:54

Respostas

  • If rbId.Checked Then
       If Me.txtBusca.Text.Trim.Length > 0 Then
          Dim dv As DataView = Me.dgBuscaFornecedor.DataSource
          dv.RowFilter = "CODIGO_FORNECEDOR >= " & Me.txtBusca.Text & ""
          Me.dgBuscaFornecedor.DataSource = dv
       end if
    end if
    blog: http://lblima.blogspot.com
    sexta-feira, 5 de junho de 2009 18:19
    Moderador

Todas as Respostas

  • vc está utilizando um DataSet + um BindingSource para preencher esse DataGrid?

    se sim

    me.seubindingsource.filter = " CODIGO_FORNECEDOR like '%" & Me.txtBusca.Text & "%'"



    Edilson Moura
    sexta-feira, 5 de junho de 2009 11:41
  • Se é campo  númerico não use Like, use o sinal de igualdade "=".

    blog: http://lblima.blogspot.com
    sexta-feira, 5 de junho de 2009 12:21
    Moderador
  • Leonardo deu certo mais tem um problemima coloquei assim olha

                Dim dv As DataView = Me.dgBuscaFornecedor.DataSource
                dv.RowFilter = " CODIGO_FORNECEDOR = '" & Me.txtBusca.Text & "'"
                Me.dgBuscaFornecedor.DataSource = dv

    to montando meu busca assim se eu aperto 1 vai ter que aparecer todos os codigo com inicial 1
    mais aki ta assim eu aperto 1 so aparece o 1 e se eu apago o numero da erro!
     (Não é possível realizar a operação '=' em System.Int32 e System.String.)
    o que eu fasso fiz assim olha 

    Private Sub txtBusca_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtBusca.KeyUp
            If rbId.Checked Then
                Dim dv As DataView = Me.dgBuscaFornecedor.DataSource
                dv.RowFilter = " CODIGO_FORNECEDOR = '" & Me.txtBusca.Text & "'"
                Me.dgBuscaFornecedor.DataSource = dv
    End If

    para mostrar no grid fiz desse jeito! 
    se tiver algo errado me ajuda sou iniciante =D

        Private Sub BuscaFornecedor_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Try
                Dim objconexao As New SqlClient.SqlConnection
                Dim objPessoa As New clsCadastroProduto
                Dim objAdapter As SqlClient.SqlDataAdapter
                Dim dspessoa As New Data.DataSet

                With objconexao
                    .ConnectionString = objPessoa.strconexao2
                    .Open()
                End With
                objAdapter = New SqlClient.SqlDataAdapter("select CODIGO_FORNECEDOR,EMPRESA_FORNECEDOR,CIDADE_FORNECEDOR,UF_FORNECEDOR,CNPJ_FORNECEDOR,NOME_REPRESENTANTE_FORNECEDOR,DDD_REPRESENTANTE_FORNECEDOR,CONTATO_REPRESENTANTE_FORNECEDOR from CAD_FORNECEDORES", objconexao)
                objAdapter.Fill(dspessoa, "TBPESSOA")
                dgBuscaFornecedor.DataSource = dspessoa.Tables(0).DefaultView


                objconexao.Close()
                objconexao.Dispose()
                objAdapter.Dispose()


            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
            atualizargrid()
        End Sub
    • Editado Aniobinho sexta-feira, 5 de junho de 2009 14:53 Digitei Errado
    sexta-feira, 5 de junho de 2009 14:50
  • Faz assim:

    if Me.txtBusca.Text.Trim.Lenght > 0 Then
       Dim dv As DataView = Me.dgBuscaFornecedor.DataSource
       dv.RowFilter = "CODIGO_FORNECEDOR >= " & Me.txtBusca.Text & "
       Me.dgBuscaFornecedor.DataSource = dv
    End if


    blog: http://lblima.blogspot.com
    sexta-feira, 5 de junho de 2009 16:43
    Moderador
  • Leonardo olha eu enxendo de novo =D

    * Me.txtBusca.Text.Trim.Lenght      ='Lenght' is not a member of 'String'. Esse erro <

    coloquei assim para ver o
     
    If rbId.Checked Then
                If Me.txtBusca.Text > 0 Then
                    Dim dv As DataView = Me.dgBuscaFornecedor.DataSource
                    dv.RowFilter = "CODIGO_FORNECEDOR >= " & Me.txtBusca.Text & ""
                    Me.dgBuscaFornecedor.DataSource = dv
    end if

    Mostrava os valores assim se eu apertace 3 aparecia de 3 em diante se eu apaga-se o  3 dava erro
    "A conversão da seqüência de caracteres '' no tipo 'Double' não é válida."

    Grato pelo interece e, ajudar!



    sexta-feira, 5 de junho de 2009 18:08
  • If rbId.Checked Then
       If Me.txtBusca.Text.Trim.Length > 0 Then
          Dim dv As DataView = Me.dgBuscaFornecedor.DataSource
          dv.RowFilter = "CODIGO_FORNECEDOR >= " & Me.txtBusca.Text & ""
          Me.dgBuscaFornecedor.DataSource = dv
       end if
    end if
    blog: http://lblima.blogspot.com
    sexta-feira, 5 de junho de 2009 18:19
    Moderador
  • =D Funcionou =D!
    mais tem outra coisa =D

    agora ta funcioando igual eu tinha falado! se eu aperto 15 vai aparecer 15 em diante 15,16,17,etc
    quero assim olha ve se tem como!

    apertei 1 apareca 1,11,100, etc itendeu tem como eu fazer isso ???

    valeu pela ajuda

    axo que vc ja deve tar iritado comigo =D

    sexta-feira, 5 de junho de 2009 18:40
  • Acho que não, não me veio nada na cabeça para fazer isso.
    blog: http://lblima.blogspot.com
    sexta-feira, 5 de junho de 2009 18:43
    Moderador
  • Talvez usando um CONVERT em tempo-real?

    Não tenho certeza de que funcionará em RowFilter.

    sexta-feira, 5 de junho de 2009 20:23
  • Como assim um convert ?
    domingo, 7 de junho de 2009 02:17
  • É uma função SQL:
    CONVERT(Tipo, Campo)

    Exemplo:
    CONVERT(VARCHAR(5), Campo) As NovoCampo

    É uma função SQL porém não tenho certeza que funcione com RowFilter.
    Dê uma olhada na biblioteca da MSDN.
    segunda-feira, 8 de junho de 2009 19:41
  • exatamente  Convert Funcionaria mas por estar em filter  Rowfilter pode ser que não mesmo..

    rowfilter = CONVERT(VARCHAR(5), Campo)  like '"& campotexto &"';

     

    bem dificil que funcione..

    quarta-feira, 19 de janeiro de 2011 15:10
  • encontrei uma solução para esse problema:

    .Select("id + '' like '*" & id.text & "*'")

    *as aspas simples e duplas se confundem ai no meio

    eu sei que esse tópico já tem alguns anos, e talvez quem criou nem veja, então fica para os próximos que entrarem aqui.



    sexta-feira, 5 de agosto de 2016 00:12
  • Obrigado Eduardo.

    E mais alguns anos depois e me ajudou!!!

    Grato!!!

    terça-feira, 12 de junho de 2018 02:40