- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试查询 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/
我是一名优秀的程序员,十分优秀!