Du kan bare gøre dette
query = "Select * From Table Where Title = " + someone;
Men det er dårligt og åbner dig for SQL Injection
Du skal bare bruge en parameteriseret forespørgsel
Noget som dette burde få dig i gang
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);
}
Fra Jon Skeets svar, da hans var mere komplet end mit
Se dokumenterne for SqlCommand.Parameters for mere information.
Grundlæggende bør du ikke indlejre dine værdier i selve SQL'en af forskellige årsager:
- Det er uelegant at blande kode og data
- Det åbner dig for SQL-injektionsangreb, medmindre du er meget forsigtig med at undslippe
- Du skal bekymre dig om formatering og i18n-detaljer for ting som tal, datoer og klokkeslæt osv.
- Når forespørgslen forbliver den samme, og kun værdierne ændres, har optimeringsværktøjet mindre arbejde at gøre - det kan slå den tidligere optimerede forespørgsel op direkte, da det vil være et perfekt match mellem SQL'en.