none
Utilizar igualdade e diferença no BindingSource.Filter RRS feed

  • Pergunta

  • Galera, é o seguinte

    Estou utilizando o componente BindingSource e estou aplicando um filtro, utilizando o atributo "Filter", preciso aplicar o Filtro baseado se um campo vindo do banco é ou não é nulo, exemplo:

    bindingSource.Filter = "CodCaixa = null";

    e

    bindingSource.Filter = "CoxCaixa != null";

    porém, esta lógica não funciona assim e eu não sei como faz a verificação no Filter,

    alguém sabe como aplico isto ?


    Giuvane Conti - Se a resposta for útil, marque-a.

    quarta-feira, 13 de fevereiro de 2013 16:51

Todas as Respostas

  • olá o diferente no bindingsource 

    é o operador <> 

    e para null se usa 'is null' ao invés de = null ex

    bindingSource.Filter = "CodCaixa is null";

    já para o  = null tente: is not null

    bindingSource.Filter = "CodCaixa not null";

    tente assim amigo

    abraços !

    quarta-feira, 13 de fevereiro de 2013 17:07
  • o bindingSource.Filter = "CodCaixa is null"; funcionou perfeitamente,

    porém o bindingSource.Filter = "CodCaixa not null"; disparou a seguinte exception:

    Syntax error: Missing operand after 'null' operator.


    Giuvane Conti - Se a resposta for útil, marque-a.

    quarta-feira, 13 de fevereiro de 2013 17:29
  • perdão

    é 

    is not null 

    bindingSource.Filter = "CodCaixa is not null";

    semelhante ao t-sql

    desculpe amigo rs

    quarta-feira, 13 de fevereiro de 2013 17:30
  • pois é.. foi a primeira correção que fiz ao dar a exception, porém mesmo assim ele listou os objetos com o campo CodCaixa "null"... tem alguma outra forma de aplicar que talvez resolva ? vc conhece alguma outra forma de verificação ?

    Giuvane Conti - Se a resposta for útil, marque-a.

    quarta-feira, 13 de fevereiro de 2013 17:35
  • você pode tentar 

    CodCaixa = ''

    ou 

    CodCaixa = 0

    caso for numérico, depende muito dos valores que estão vindo do seu bd,

    tente verificar qual é o valor que vem no bd e o tipo de dados...



    quarta-feira, 13 de fevereiro de 2013 17:41
  • dando debug, no objeto, o CodCaixa vem "null" mesmo.. porém, o tipo do campo é int...

    Giuvane Conti - Se a resposta for útil, marque-a.

    quarta-feira, 13 de fevereiro de 2013 17:45
  • msa eu tenho que verificar então se ele é diferente de 0 e não igual... caso o valor null esteja vindo como 0...

    como seria isto? bindingSource.Filter = "CodCaixa is not 0"; ?

    verificando assim, dispara a seguinte exception:

    Syntax error: Invalid usage of 'Is' operator. Correct syntax: <expression> Is [Not] Null.


    Giuvane Conti - Se a resposta for útil, marque-a.

    quarta-feira, 13 de fevereiro de 2013 17:52
  • qual banco de dados você usa ?

    se for sqlserver da um IsNull

    e converte para -1 ou para um outro valor que vc possa usar no filtro, talvez seja 1 opção

    se for firebird usa um coalesce e assim por diante...

    ai fica CodCaixa <> -1 para ele não listar os vazios e CodCaixa = -1 para listar...

    é uma sugestão

    quarta-feira, 13 de fevereiro de 2013 17:54
  • o banco de dados é Oracle, mas vou tentar essas opções, vamos ver...

    Giuvane Conti - Se a resposta for útil, marque-a.

    quarta-feira, 13 de fevereiro de 2013 17:58
  • pesquisei e vi com NVL(campo,-1) "apelido"

    é uma sugestão acho que você pode ter certeza melhor

    se é o correspondente de isnull

    http://www.w3schools.com/sql/sql_isnull.asp

    quarta-feira, 13 de fevereiro de 2013 18:08
  • não da certo, diz que a função NVL não pode ser utilizada...

    porém, lendo e pesquisando eu vi que o comando: bindingSource.Filter = "CodCaixa is not null" é o correto e deveria funcionar...

    não sei porque os itens com CodCaixa nulo estão sendo listado também... mas enfim.. vou fuçar aqui até descobrir e retorno postando novidades quando eu descobrir..

    se mais alguém tiver alguma ideia, agradeço...


    Giuvane Conti - Se a resposta for útil, marque-a.

    quarta-feira, 13 de fevereiro de 2013 19:23
  • sinistro mesmo eu sempre que usei tanto no DataView, DataTable, o is not null deu certinho...

    vou dar uma pesquisada também quanto a isso para ir tentar te ajudar man...

    achando um artigo ou um link relacionado eu posto aqui para vc testar, e obtendo noticias avisa também

    abraços !

    quarta-feira, 13 de fevereiro de 2013 19:39