6

Rubyでは、Q/「二重引用符」を使用した文字列のように、文字列内の二重引用符をエスケープせずに文字列を使用できます。

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

\ "または""を1つの二重引用符として使用できることは知っていますが、二重引用符をエスケープする必要を回避することは可能ですか?

4

3 に答える 3

9

いいえ、基本的に。あなたはまたはの選択があり"foo \" bar"@"foo "" bar"両方ともあなたが言及しました。ただし、率直に言って"、SQLで必要になることはめったにありません。'リテラル文字列用と[/オブジェクト/列名用があります]-もちろん、これは私が通常SQLServerを使用しているためかもしれません。

エスケープを伴わない唯一の代替手段は、SQLを外部リソースファイル(テキストファイルなど)に移動することです。ただし、それはおそらく、を使用するよりも苦痛です""

于 2012-08-03T08:20:09.200 に答える
5

いいえ、これはC#では不可能です。SQLを別のファイルに書き込んで、そこから読み取ることができます。

于 2012-08-03T08:19:27.523 に答える
1

正当な理由で、インラインSQLを作成する必要があり、DBコンソールからC#コードにSQLクエリを配置するたびに二重引用符をエスケープするのは非常に面倒です。

インラインSQLクエリを作成している場合、SqlParametersを介して値を渡した場合は、引用符について心配する必要はありません。このようにして、煩わしい二重引用符がどこにでも表示されることはなく、クエリでさえSQLインジェクションから安全になります

于 2012-08-03T08:25:39.703 に答える