我有一个小问题,因为我Like
在我的 .Net 应用程序中传递了几个 SQL Server 查询(我无法控制),我需要转义一些字符以使它们成为数据库的文字。
例如,假设我尝试查询的字段类似于:
This_is [a] long_text field with [literal] characters in it
我的查询看起来像这样:
SELECT * FROM [MyTable] where [MyField] Like 'This_% [literal]%'
现在,这应该得到该数据,挑战是 SQL Server 没有将_
and[
字符视为文字字符,因此我必须将查询更新为:
SELECT * FROM [MyTable] where [MyField] Like 'This[_]% [[]literal]%'
然后它就起作用了。
所以,我的问题是我想编写一个 VB.Net 函数,它使用 RegEx 来查找Like
语句的一部分,然后替换字符。
类似于以下内容:
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
我知道我提供了非常糟糕的细节,我知道我想要什么,我只是不知道如何使用 RegEx 来做到这一点。
另外,如果有更聪明的方法来使用 SQL ServerLike
语句执行此操作,也请告诉我!!!
谢谢!!