Вы можете просто сделать это
query = "Select * From Table Where Title = " + someone;
Но это плохо и открывает для вас SQL-инъекцию
Вы должны просто использовать параметризованный запрос
Что-то вроде этого должноНачало работы
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);
}
Из ответа Джона Скита, поскольку он был более полным, чем мой
См. документы для SqlCommand.Parameters для получения дополнительной информации.
По сути, вы не должны встраивать свои значения в сам SQL по разным причинам:
- Нелегко смешивать код и данные
- Это открывает вам возможности для атак с использованием SQL-инъекций, если только выочень осторожны с экранированием
- Вам нужно беспокоиться о форматировании и деталях i18n для таких вещей, как числа, даты и время и т. д.
- Когда запрос остается неизменным, меняются только значения, оптимизатору него меньше работы - он может искать предыдущий оптимизированный запрос напрямую, поскольку он будет идеально соответствовать SQL.