2012-08-03 15 views
5

Rubyでは、Qのように文字列の二重引用符をエスケープする必要なく文字列を使用することができます/二重引用符を含む文字列/C#の文字列で二重引用符のエスケープを避けるには?

不要な文字列を使用することは可能ですか二重引用符をエスケープするには? 正当な理由から、私はインラインSQLを書く必要があり、DBコンソールからSQL#クエリをC#コードに置くたびに二重引用符をエスケープするのは非常に面倒です。

私は1つの二重引用符として\」または 『』を使用することができます知っている。しかし、それは二重引用符をエスケープする必要性を回避することができる?

+0

いいえ、@記号を使用して "これは" + "コードの明瞭さのための改行" "長い行を1行に入れたくない"ことを止めることができます。エスケープを避ける方法はありません。 –

答えて

4

いいえ、これはC#でことはできません。あなたが書くことができますその後、別のファイルにして、SQLがそこからそれを読ん

9

ありませんが、基本的にあなたがあなたが言及しているどちらも"foo \" bar"または@"foo "" bar"、の選択肢を持っているしかし、率直に言って、私はめったにSQLで必要な"を見つけません。。。。あなたが持っていますリテラル文字列の場合は'、オブジェクト/列名の場合は[/] - これはもちろんのことSQL Serverを使用してください。

ではなく、には、SQLを外部リソースファイル(テキストファイルなど)に移動するという唯一の方法があります。しかし、これは恐らく""を使用するよりも痛いでしょう。私は、インラインSQLを記述する必要があり、それは私がC# コードにDBコンソールからSQLクエリを置くたびに エスケープ二重引用符に非常に迷惑なんだ良い理由

+1

私は、CamelCaseの名前を二重引用符でエスケープするPostgreSQLを使用します。 – Zelid

+0

@Zelidはい、あなたは私とは別のDBエンジンを使用している可能性があります(この問題はほとんどありません)。申し訳ありませんが、どのオプションが最も悪いのかを選択する必要があります。 –

0

インラインSqlクエリを作成している場合は、SqlParameters経由で値を渡すと引用符を心配する必要はありません。この方法では、クエリがSQLインジェクションから安全な場所にある場合でも、迷惑な二重引用符は表示されません。

+0

Lightweight DBアクセスライブラリとしてMassiveを使用します。常にエスケープするparamsを使用します。私はCamelCaseの名前を使用するときに、PostgreSQLのカラム名とテーブル名に二重引用符を使用する必要があります。 – Zelid

+0

@Zelidその場合、私はどこでも二重引用符を見て迷惑になることに同意し、あなたは別の選択肢があるとは思わない – HatSoft

関連する問題