Rubyでは、Q/「二重引用符」を使用した文字列のように、文字列内の二重引用符をエスケープせずに文字列を使用できます。
C#で二重引用符をエスケープせずに文字列を使用することは可能ですか?正当な理由で、インラインSQLを作成する必要があり、DBコンソールからC#コードにSQLクエリを配置するたびに二重引用符をエスケープするのは非常に面倒です。
\ "または""を1つの二重引用符として使用できることは知っていますが、二重引用符をエスケープする必要を回避することは可能ですか?
Rubyでは、Q/「二重引用符」を使用した文字列のように、文字列内の二重引用符をエスケープせずに文字列を使用できます。
C#で二重引用符をエスケープせずに文字列を使用することは可能ですか?正当な理由で、インラインSQLを作成する必要があり、DBコンソールからC#コードにSQLクエリを配置するたびに二重引用符をエスケープするのは非常に面倒です。
\ "または""を1つの二重引用符として使用できることは知っていますが、二重引用符をエスケープする必要を回避することは可能ですか?
いいえ、基本的に。あなたはまたはの選択があり"foo \" bar"
、@"foo "" bar"
両方ともあなたが言及しました。ただし、率直に言って"
、SQLで必要になることはめったにありません。'
リテラル文字列用と[
/オブジェクト/列名用があります]
-もちろん、これは私が通常SQLServerを使用しているためかもしれません。
エスケープを伴わない唯一の代替手段は、SQLを外部リソースファイル(テキストファイルなど)に移動することです。ただし、それはおそらく、を使用するよりも苦痛です""
。
いいえ、これはC#では不可能です。SQLを別のファイルに書き込んで、そこから読み取ることができます。
正当な理由で、インラインSQLを作成する必要があり、DBコンソールからC#コードにSQLクエリを配置するたびに二重引用符をエスケープするのは非常に面倒です。
インラインSQLクエリを作成している場合、SqlParametersを介して値を渡した場合は、引用符について心配する必要はありません。このようにして、煩わしい二重引用符がどこにでも表示されることはなく、クエリでさえSQLインジェクションから安全になります