Solo puedes hacer esto
query = "Select * From Table Where Title = " + someone;
Pero eso es malo y te abre a SQL Injection
Solo debe usar una consulta parametrizada
Algo como esto debería ayudarlo a comenzar
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);
}
De la respuesta de Jon Skeet ya que la suya era más completa que la mía
Consulte los documentos para SqlCommand.Parameters para más información.
Básicamente, no debe incrustar sus valores dentro del propio SQL por varias razones:
- No es elegante mezclar código y datos
- Te expone a ataques de inyección SQL a menos que tengas mucho cuidado con escapar
- Tiene que preocuparse por el formato y los detalles de i18n para cosas como números, fechas y horas, etc.
- Cuando la consulta sigue siendo la misma y solo cambian los valores, el optimizador tiene menos trabajo que hacer:puede buscar la consulta optimizada anterior directamente, ya que será una coincidencia perfecta en términos de SQL.