.net - SQL 查询中的转义字符

标签 .net sql database escaping

<分区>

我正在尝试使用此查询更新数据库:

string query = "UPDATE pagine SET titolo= '" + pa.titolo + @"', contenuto = '" + pa.contenuto + @"' WHERE id= " + pa.id;

我无法让它工作。更多详细信息,请访问 Updating an mdb database table

问题可能是我在标题和内容中有一些撇号。 我尝试使用 Regex.Escape,但它只会向内容中添加大量的\\\。

有没有办法在 ASP.NET 中只转义 ' 和 "字符?

注意:因为我是意大利人,所以我对变量使用意大利语名称,但为了在昨天发布的其他问题中更清楚,我翻译了它们。

最佳答案

我的建议是将 SqlCommand 对象与 SqlParameter 一起使用,以避免所有连接和转义字符的麻烦。他们会自动为您处理所有这一切。此外,它们还能使您免受 SQL 注入(inject)攻击。

如果您有选择,我建议您采用类型化数据集方法并为自己创建一个类型化查询。然后您可以在代码中将其作为常规 .NET 函数调用。

关于.net - SQL 查询中的转义字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15931564/

相关文章:

.net - 为每个 FiddlerCore session 动态设置上游代理

c# - 等待异步 WCF 方法

.net - 如何在更新面板更新后运行Javascript

java - 是否有在 Spring Boot 上下文中查询巨大 CSV 的最佳实践?

database - 具有主/从结构的 Redis Multitenency?

c# - 通过方法返回 list<t> 的最佳方式是什么?

mysql - 如何根据另一个表中的 %LIKE% 值过滤一个表

sql - 需要识别 ODBC DSN 连接的应用程序中的数据库名称

mysql - 选择最新的 100 篇文章的 sql 查询,然后按最高评分顺序返回该结果的 30 篇文章

ruby-on-rails - rails apartment gem 将数据从一个租户复制到另一个租户