Vous pouvez simplement faire ceci
query = "Select * From Table Where Title = " + someone;
Mais c'est mauvais et vous ouvre à l'injection SQL
Vous devez simplement utiliser une requête paramétrée
Quelque chose comme ça devrait vous aider à démarrer
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);
}
D'après la réponse de Jon Skeet puisque la sienne était plus complète que la mienne
Voir la documentation pour SqlCommand.Parameters pour plus d'informations.
Fondamentalement, vous ne devriez pas intégrer vos valeurs dans le SQL lui-même pour diverses raisons :
- C'est inélégant de mélanger code et données
- Cela vous expose aux attaques par injection SQL à moins que vous ne fassiez très attention à vous échapper
- Vous devez vous soucier du formatage et des détails i18n pour des éléments tels que les nombres, les dates et les heures, etc.
- Lorsque la requête reste la même et que seules les valeurs changent, l'optimiseur a moins de travail à faire :il peut rechercher directement la requête optimisée précédente car elle correspondra parfaitement en termes de SQL.