gpt4 book ai didi

c# - 从字符串中提取 SQL 参数名称

转载 作者:太空宇宙 更新时间:2023-11-03 18:36:37 24 4
gpt4 key购买 nike

我正在为我们的专有数据库实现我自己的 DBCommand 包装器,通过它我们只能通过 API 和使用字符串进行访问。嘘

我希望能够通过正则表达式找到我的常规参数,而不是选择@@IDENTITY 字段(或其他类似字段)。然后,我将用该参数 NULL'Some Value' 等的实际值替换参数名称。

目前我有

@\w{1,}

给定一个字符串

INSERT INTO MYTABLE(VALUE1, VALUE2) VALUES (@MyValue1, @MyValue2); SELECT @@IDENTITY

我在匹配

@MyValue1
@MyValue2
@IDENTITY

我也试过 [^@]@\w{1,} 但它匹配 (@MyValue1_@MyValue2 (下划线代表空间)

如何不匹配@@Identity?

最佳答案

您可以添加括号,标记您实际想要使用其匹配字符串的子表达式:[^@](@\w{1,}) , 然后使用 Match.Groups(1)仅检索该部分。

另一种变体是否定的后视断言:(?<!@)@\w{1,} ,还有匹配的额外奖励 @name在字符串的最开头(好吧,它可能不会发生)。

更新:对于 '@quoted @string @literals' 它不会帮助你,它们是合法的 SQL,但不是参数

关于c# - 从字符串中提取 SQL 参数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14389427/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com