Jeśli używasz prawidłowo sparametryzowanych instrukcji , nie musisz się tym martwić. Coś takiego (choć proszę nie ucz się ode mnie technik C#):
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();
(Chociaż naprawdę powinieneś używać procedur składowanych).
Jeśli budujesz swoje ciągi ręcznie (czego naprawdę, naprawdę, naprawdę nie powinieneś robić), musisz uciec od ograniczników ciągów, podwajając je:
INSERT dbo.tbl(col) VALUES('hello''foo"bar');