Tidak diperlukan algoritme - hanya saja, jangan gunakan rangkaian string untuk membuat pernyataan SQL. Gunakan koleksi SqlCommand.Parameters sebagai gantinya. Ini melakukan semua pelepasan nilai yang diperlukan (seperti mengganti '
dengan ''
) dan memastikan perintah akan aman karena orang lain (mis. Microsoft) telah melakukan semua pengujian.
misalnya memanggil prosedur tersimpan:
using (var connection = new SqlConnection("..."))
using (var command = new SqlCommand("MySprocName", connection))
{
command.CommandType = CommandType.StoredProcedure;
command.Parameters.AddWithValue("@Param1", param1Value);
return command.ExecuteReader();
}
Teknik ini juga berfungsi untuk pernyataan SQL sebaris, mis.
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();
}