Mã đó chỉ là xấu . Chèn SQL; DataTable không có lý do; StringBuilder không có lý do. Ở đây nó được thực hiện đơn giản, sử dụng "dapper" (miễn phí có sẵn trên 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() ?? "";
}
Đây là:
- tiêm an toàn (được tham số đầy đủ)
- trực tiếp (không có các lớp không cần thiết như DataTable)
- được tối ưu hóa