Er is geen algoritme nodig - gebruik gewoon geen samenvoeging van tekenreeksen om SQL-instructies te maken. Gebruik in plaats daarvan de verzameling SqlCommand.Parameters. Dit doet alle noodzakelijke escapes van waarden (zoals het vervangen van '
met ''
) en zorgt ervoor dat de opdracht veilig is omdat iemand anders (bijv. Microsoft) alle tests heeft gedaan.
bijv. een opgeslagen procedure aanroepen:
using (var connection = new SqlConnection("..."))
using (var command = new SqlCommand("MySprocName", connection))
{
command.CommandType = CommandType.StoredProcedure;
command.Parameters.AddWithValue("@Param1", param1Value);
return command.ExecuteReader();
}
Deze techniek werkt ook voor inline SQL-instructies, bijv.
var sql = "SELECT * FROM MyTable WHERE MyColumn = @Param1";
using (var connection = new SqlConnection("..."))
using (var command = new SqlCommand(sql, connection))
{
command.Parameters.AddWithValue("@Param1", param1Value);
return command.ExecuteReader();
}