Quel codice è solo cattivo . SQL Injection; DataTable senza motivo; StringBuilder senza motivo. Qui è fatto semplicemente, usando "dapper" (disponibile gratuitamente su NuGet):
using(var conn = GetSomeConnection()) { // <== todo
return conn.Query<string>(
"select title from MyTable where [email protected] and [email protected]",
new { id = myId, var = myVar }).FirstOrDefault() ?? "";
}
Questo è:
- sicura per iniezione (completamente parametrizzata)
- diretto (nessun layer non necessario come DataTable)
- ottimizzato