適切にパラメータ化されたステートメントを使用する場合 、心配する必要はありません。このようなもの (ただし、私から 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();
プレ>(ただし、実際にはストアド プロシージャを使用する必要があります。)
文字列を手動で作成している場合 (これは、本当に、本当に、実際に行うべきではありません)、文字列区切り文字を 2 倍にしてエスケープする必要があります。
INSERT dbo.tbl(col) VALUES('hello''foo"bar');
プレ>