Ten kód je prostě špatný . SQL injekce; DataTable bez důvodu; StringBuilder bez důvodu. Zde se to dělá jednoduše pomocí "dapper" (volně dostupné na 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() ?? "";
}
Toto je:
- bezpečné vstřikování (plně parametrizované)
- přímé (žádné zbytečné vrstvy jako DataTable)
- optimalizováno