Du kan bara göra detta
query = "Select * From Table Where Title = " + someone;
Men det är dåligt och öppnar dig för SQL Injection
Du bör bara använda en parameteriserad fråga
Något sådant här borde få dig igång
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);
}
Från Jon Skeets svar eftersom hans var mer komplett än mitt
Se dokumenten för SqlCommand.Parameters för mer information.
I grund och botten bör du inte bädda in dina värden i själva SQL-en av olika anledningar:
- Det är oelegant att blanda kod och data
- Det öppnar upp för SQL-injektionsattacker om du inte är mycket försiktig med att fly
- Du måste oroa dig för formatering och i18n-detaljer för saker som siffror, datum och tider etc.
- När frågan förblir densamma och endast värdena ändras, har optimeraren mindre arbete att göra - den kan slå upp den tidigare optimerade frågan direkt eftersom det kommer att vara en perfekt matchning av SQL:n.