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