>Ciao a tutti,
Ciao
>Ora mi chiedo:
>Esiste un'altro metodo per ottenere lo stesso risultato?
Sì, tramite stored procedure o con query parametriche, evitando la concatenazione delle stringhe SQL perchè, come giustamente dici tu, puoi incorrere in attacchi SQL Injection.
Leggi qui per maggiori info: http://www.dotnethell.it/articles/SQL-Injection-Tutorial-Security.aspx
Quoto inoltre e. disanto che dice che una replace rimuove di molto gli attacchi sql injection.
Con le stored procedure puoi creare dinamicamente l'sql al loro interno e poi lanciarlo con sp_executesql
http://msdn.microsoft.com/it-it/library/ms188001.aspx
oppure sia con le query parametriche sia con le stored procedure puoi usare la seguente logica (non molto performante, ma efficace con poche righe):
SELECT
<campi>
FROM
<tabella>
WHERE
@parametro1 IS NULL OR campo1 = @parametro
AND @parametro2 IS NULL OR campo2 = @parametro
...
>Grazie e ciao
>alexmed
--
Alessandro Alpi | SQL Server MVP
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org