Ancora oggi trovo diversi post in forum o newsgroup di gente
che si lamenta perchè non funziona questa query, perchè non mi riconosce quel
dato, perchè non riesco ad eseguire..., ecc...ecc. Poi vedi che utilizzano
ancora query costruite "onthefly" che, nel 99% dei casi, risultano essere la
causa di quelle "stranezze". Non so se il problema esiste ancora per leggerezza,
pigrizia o ignoranza (nel senso che ignora
) dello sviluppatore di turno, ma usare i parametri pare così brutto?
Circa 8/9 anni fa, quando muovevo i primi passi con ASP
e le query SQL, ammetto che ero solito anch'io utilizzare questo sistema.
Il ragionamento sembrava filare: perchè scrivere tante righe inutili quando
con una sola faccio tutto? Solo in seguito mi sono accorto che l'approccio era
completamente errato ed inutile, e che il peso della bilancia era totalmente a
favore dell'uso dei parametri: strongly-typed parameters, performance, query
compilate sono alcuni dei vantaggi derivanti dall'uso dei parametri, senza
parlare della security con il superamento della sql-Injection
.
Quindi: e' proprio così brutto? In fin dei conti, si tratta solo di
sostituire un codice+query come questo:
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "SELECT * FROM TABELLA WHERE UserName = '"
+ username + "'";
cmd.Execute...();
Con questo:
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "SELECT * FROM TABELLA WHERE UserName = @userName";
SqlParameter p = new SqlParameter("@userName", SqlDbType.VarChar, 30);
p.Value = username;
cmd.Parameters.Add(p);
cmd.Execute...();
Allora? Pare veramente brutto?
powered by IMHO 1.3