Usuário com melhor resposta
Ordem dos parâmetros para passar uma consulta SQL usando string.Format() método.

Pergunta
-
Olá pessoal, estou desenvolvendo um relatório em Asp.Net aqui na empresa. Sou programador a nível iniciante pois ainda não domino 100% a "coisa". O problema que estou tendo é o seguinte: Tenho um consulta em T-SQL bastante extensa e dependendo se o usuário selecionar ou não os filtros (são os drop down list com os respectivos campos) uso um string.Format(consultaComFiltro, argumento1, argumento2, argumentoN) para ser substituída dentro da minha query, onde tem os "{0} {1 {2}" e assim por diante totalizando 9 lugares para serem ou não preenchidos. Dada essa condição preciso complementar a consulta nas posições marcadas como {6}{7} e {8} sem colocar nada nas posições {0}{1}{2}{3}{4} e {5}. Como faço para selecionar a posição dos meus argumentos dentro do método string.Format()??
Obrigado a todos!
Respostas
-
Osmar, este tipo de prática não é recomendada, alem de você deixar seu código muito complexo ele abre brechas de segurança. tente refazer utilizando SQLParamers http://msdn.microsoft.com/pt-br/library/system.data.sqlclient.sqlparameter.aspx
Olavo Oliveira Neto
http://olavooneto.wordpress.com
Twitter @Olavooneto
Facebook Olavo Neto
Linkedin Olavo Neto
Se for útil marque como resposta e faça um Developer feliz :)- Sugerido como Resposta Rubens Martins quarta-feira, 19 de dezembro de 2012 17:55
- Marcado como Resposta Ricardo RussoModerator sexta-feira, 18 de janeiro de 2013 11:59
Todas as Respostas
-
Osmar, este tipo de prática não é recomendada, alem de você deixar seu código muito complexo ele abre brechas de segurança. tente refazer utilizando SQLParamers http://msdn.microsoft.com/pt-br/library/system.data.sqlclient.sqlparameter.aspx
Olavo Oliveira Neto
http://olavooneto.wordpress.com
Twitter @Olavooneto
Facebook Olavo Neto
Linkedin Olavo Neto
Se for útil marque como resposta e faça um Developer feliz :)- Sugerido como Resposta Rubens Martins quarta-feira, 19 de dezembro de 2012 17:55
- Marcado como Resposta Ricardo RussoModerator sexta-feira, 18 de janeiro de 2013 11:59
-
-
Oi Pessoal,
eu fiz o seguinte:
Dentro da minha consulta coloquei uma string indicando a posição de onde deve ser acrescida uma condição assim: [CONDICAO_WHERE];
Aí usei um string.replace("[CONDICAO_WHERE]", " AND NUMERO = " + param1 + ) onde param1 é minha string passada como parâmetro para meu método. Infelizmente não consegui uma solução usando somento os SqlParameters pois dependendo da condição que o usuário solicitar um pedaço da string teria ou não que ser acrescentada na minha query.
Teria outro jeito? No momento não estou conseguindo visualizar e além disso tenho que entregar isso o mais breve possível...
Obrigado a todos!