Like
.NetアプリケーションでいくつかのSQLServerクエリ(制御できない)を渡すというわずかな問題があり、データベースのリテラルにするためにいくつかの文字をエスケープする必要があります。
たとえば、クエリしようとしているフィールドが次のようになっているとします。
This_is [a] long_text field with [literal] characters in it
そして、私のクエリは次のようになります。
SELECT * FROM [MyTable] where [MyField] Like 'This_% [literal]%'
これでデータが取得されるはず_
です。課題は、SQL Serverでと[
文字がリテラル文字として認識されないことです。そのため、クエリを次のように更新する必要があります。
SELECT * FROM [MyTable] where [MyField] Like 'This[_]% [[]literal]%'
そして、それは機能します。
Like
したがって、私の質問は、RegExを使用してステートメントの一部を検索し、文字を置き換えるVB.Net関数を作成したいということです。
次のようなもの:
Public Function ConvertQuery(strSQL as string)
... Some kind of Regex that searches for the word "Like"
and then takes everytihng between the 2 "'" characters
Then replaces the "_" with "[_]" and "[" with "[[]"
Return ChangedString
End Function
私は本当に悪い詳細を提供していることを知っています、私は私が欲しいものを知っています、私は正規表現でそれを行う方法を理解することができません。
Like
また、SQL Serverステートメントを使用してこれを行うためのよりスマートな方法がある場合は、私にも知らせてください!!!
ありがとう!!