Bạn chỉ có thể làm điều này
query = "Select * From Table Where Title = " + someone;
Nhưng điều đó thật tệ và mở ra cho bạn SQL Injection
Bạn chỉ nên sử dụng một truy vấn được tham số hóa
Một cái gì đó như thế này sẽ giúp bạn bắt đầu
using (var cn = new SqlClient.SqlConnection(yourConnectionString))
using (var cmd = new SqlClient.SqlCommand())
{
cn.Open();
cmd.Connection = cn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "Select * From Table Where Title = @Title";
cmd.Parameters.Add("@Title", someone);
}
Từ câu trả lời của Jon Skeet vì anh ấy hoàn thiện hơn câu trả lời của tôi
Xem tài liệu cho SqlCommand.Parameters để biết thêm thông tin.
Về cơ bản, bạn không nên nhúng các giá trị của mình vào chính SQL vì nhiều lý do:
- Việc trộn mã và dữ liệu là không phù hợp
- Nó mở ra cho bạn các lệnh truy xuất SQL trừ khi bạn rất cẩn thận về việc thoát
- Bạn phải lo lắng về định dạng và chi tiết i18n cho những thứ như số, ngày và giờ, v.v.
- Khi truy vấn vẫn giữ nguyên chỉ có các giá trị thay đổi, trình tối ưu hóa sẽ ít việc phải làm hơn - nó có thể tra cứu trực tiếp truy vấn được tối ưu hóa trước đó vì nó sẽ là một kết hợp hoàn hảo của SQL.