Je kunt dit gewoon doen
query = "Select * From Table Where Title = " + someone;
Maar dat is slecht en opent je voor SQL-injectie
U moet gewoon een geparametriseerde query gebruiken
Zoiets zou je op weg moeten helpen
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);
}
Van Jon Skeet's antwoord, omdat zijn antwoord completer was dan het mijne
Zie de documenten voor SqlCommand.Parameters voor meer informatie.
In principe zou u om verschillende redenen uw waarden niet in de SQL zelf moeten insluiten:
- Het is onelegant om code en data te combineren
- Het stelt je bloot aan SQL-injectieaanvallen, tenzij je heel voorzichtig bent om te ontsnappen
- Je moet je zorgen maken over opmaak en i18n-details voor zaken als getallen, datums en tijden, enz.
- Als de query hetzelfde blijft en alleen de waarden veranderen, heeft de optimizer minder werk te doen - hij kan de vorige geoptimaliseerde query direct opzoeken, omdat deze perfect overeenkomt met de SQL.