gpt4 book ai didi

c# - 如何从 WebMatrix 转义 sql 查询中的符号?

转载 作者:行者123 更新时间:2023-11-30 22:19:16 26 4
gpt4 key购买 nike

我正在尝试查询 WebMatrix 中的数据库,这件事我已经做过好几次了,只有这一次,我发现供应商列中的一些字段包含 & 符号。我看过几篇文章,但没有一篇从 WebMatrix 的角度攻击这个解决方案(实际上,没有一篇真正解决直接问题,而是针对特定环境的变通方法)。

我还尝试了几种方法,包括 C# 的 Replace 方法(尽管,我从来没有得到一个明确的例子,说明我应该用什么来替换 & 号,如果存在合适的替代品的话),以及转义 & 号带有反斜杠(显然这不起作用)。

理想的情况是在 sql 环境本身中有一个转义字符,但是据我所知,不存在这样的转义字符。我应该用什么替换以下查询以返回其字段包含 & 符号的行,如下所示:

SELECT vendor_id FROM vendors WHERE vendor_name = 'J & H Equipment'

即使 vendor_name 列包含一个恰好为“J & H Equipment”的值(字符串),上述查询也没有返回任何行

它没有提到我正在参数化我的查询,所以实际的查询看起来像:

string selectQueryString = "SELECT ap_vendor_id FROM ap_vendors WHERE ap_vendor_name = @0";

var code = db.QueryValue(selectQueryString, searchString);

在这段代码之后,我只是将值写入页面(使用 razor,是的,我尝试了 Html.Raw(code) 和 @code),因为这是一个 AJAX 调用。

此外,下面是我在实际查询之前尝试运行的替换函数:

searchString = searchString.Replace("&", "\\&");

请注意,双反斜杠是必需的,因为“\”字符在 C# 中是一个转义字符,因此两个“\”在 C# 中等同于一个“\”。

------------------------我的解决方案-------------------- --------

对我来说,解决方案是在 AJAX 调用之前在我的 javascript 中使用 encodeURIComponent(我确信我很清楚,到目前为止,我并没有长时间使用 AJAX)。

最佳答案

解决方案是在 AJAX 调用之前在 javascript 中使用 encodeURIComponent。

关于c# - 如何从 WebMatrix 转义 sql 查询中的符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15660073/

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