Si vous utilisez des instructions correctement paramétrées , vous ne devriez pas avoir à vous en soucier. Quelque chose comme ça (mais s'il vous plaît, n'apprenez pas les techniques C # de ma part):
string sql = @"UPDATE dbo.table SET col = @p1 WHERE ...;";
string myString = @"hello'foo""bar";
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.CommandType = CommandType.Text;
SqlParameter p1 = cmd.Parameters.AddWithValue("@p1", myString);
cmd.ExecuteNonQuery();
(Bien que vous devriez vraiment utiliser des procédures stockées.)
Si vous construisez vos chaînes manuellement (ce que vous ne devriez vraiment, vraiment, vraiment pas faire), vous devez échapper les délimiteurs de chaînes en les doublant :
INSERT dbo.tbl(col) VALUES('hello''foo"bar');