Ese código es simplemente malo . Inyección SQL; DataTable sin motivo; StringBuilder sin ningún motivo. Aquí se hace simplemente, usando "dapper" (disponible gratuitamente en 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() ?? "";
}
Esto es:
- seguro para inyección (totalmente parametrizado)
- directo (sin capas innecesarias como DataTable)
- optimizado