Você pode apenas fazer isso
query = "Select * From Table Where Title = " + someone;
Mas isso é ruim e abre você para SQL Injection
Você deve usar apenas uma consulta parametrizada
Algo assim deve fazer você começar
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);
}
Da resposta de Jon Skeet, já que a dele era mais completa que a minha
Consulte os documentos para SqlCommand.Parameters Para maiores informações.
Basicamente, você não deve incorporar seus valores no próprio SQL por vários motivos:
- É deselegante misturar código e dados
- Isso abre espaço para ataques de injeção de SQL, a menos que você tenha muito cuidado ao escapar
- Você precisa se preocupar com a formatação e os detalhes do i18n para coisas como números, datas e horas etc.
- Quando a consulta permanece a mesma com apenas os valores mudando, o otimizador tem menos trabalho a fazer - ele pode procurar a consulta otimizada anterior diretamente, pois será uma correspondência perfeita em termos do SQL.