そのコードは悪い . SQL インジェクション;理由もなくDataTable。理由もなく StringBuilder 。ここでは、"dapper" (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() ?? "";
}
これは:
- インジェクションセーフ (完全にパラメータ化)
- 直接 (DataTable のような不要なレイヤーはありません)
- 最適化