Boas,
Estou a chamar uma funcao onde vou fazer uma pesquisa linq,mas tb podera ser com sql injection,o importante e funcionar,a funcao e a seguinte:
SearchProduct(String InternalReference,String ProductReference,int Status,String ProductName);
Em que os argumentos podem ser todos null ou 0 no caso do int excepto 1 deles ou so um deles ser nulo,mas eu nc sei e pretendia fazer uma peskisa k me devolvesse os resultados,é necessario fazer uma query para cada caso ou é possivel fazer uma query que abranja todos os casos?
Obrigado.
Desculpa mas não percebi nada, vais ter de te explicar melhor o que pretendes que a query te retorne..
Pretendo que a query me retorne um grupo de produtos que estejam de acordo com os argumentos que eu dou,por exemplo imaginando que nenhum dos argumentos era null e o status era maior que 0 uma query valida seria:
SQL query: Select * from products where products.InternalReference = argInternalReference and
products.ProductReference = argProductReference and
products.Status = argStatus and
products.Name = argProductName;
Linq query: var productsList = from i in database.Products where i.InternalReference == InternalReference &&
i.ProductReference == ProductReference &&
i.Status == Status &&
i.Name == ProductName
select i;
Mas basta um deles ser igual null para as querys me retornarem sp grupo de productos vazios,e o que eu quero e uma query que me resolva esse problema.N sou grande especialista em SQL,sei o basico :/
"if"s para que te quero? --'
Ainda não percebi muito bem, mas já experimentaste usando "OR" em vez de "AND" ?
(10-01-2009 13:48)Bruno Bernardino Escreveu: [ -> ]Ainda não percebi muito bem, mas já experimentaste usando "OR" em vez de "AND" ?
E uma validação de campos antes de pesquisar na query não? lol É uma coisa que dá jeito, assim elimina logo à partida os campos nulos. Parece-me.
(10-01-2009 13:54)drink Escreveu: [ -> ] (10-01-2009 13:48)Bruno Bernardino Escreveu: [ -> ]Ainda não percebi muito bem, mas já experimentaste usando "OR" em vez de "AND" ?
E uma validação de campos antes de pesquisar na query não? lol É uma coisa que dá jeito, assim elimina logo à partida os campos nulos. Parece-me.
Parece-me que lhe interessa poder ter nulos, mas não quer que invalidem a query.
(12-01-2009 13:56)Bruno Bernardino Escreveu: [ -> ] (10-01-2009 13:54)drink Escreveu: [ -> ] (10-01-2009 13:48)Bruno Bernardino Escreveu: [ -> ]Ainda não percebi muito bem, mas já experimentaste usando "OR" em vez de "AND" ?
E uma validação de campos antes de pesquisar na query não? lol É uma coisa que dá jeito, assim elimina logo à partida os campos nulos. Parece-me.
Parece-me que lhe interessa poder ter nulos, mas não quer que invalidem a query.
Mas pode ter os nulos na mesma, a diferença é que fazendo a validação fica a saber quais é que são nulos e escusa de fazer a pesquisa a partir deles.
Tipo:
Código PHP:
if ((campo1 == "") && (campo2 != "") && (campo3 != "")) {
resultado = select * from tabela where tabela.campo2 = campo2 and tabela.campo3 = campo3;
}
else if ((campo1 != "") && (campo2 == "") && (campo3 != "")) {
resultado = select * from tabela where tabela.campo1 = campo1 and tabela.campo3 = campo3;
}
else if...
e por ai fora..
Aconselhava então a criar um script externo e que tivesse uma ligação a ir buscar o script para não sobrecarregar a página.
A query e feita numa aplicacao rica,o meu objectivo era msm n validar os campos e fazer uma query que os validasse,sera k com um join talvez conseguisse resolver alguma coisa? É apenas uma ideia.