1

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

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

我无法让它工作。更新 mdb 数据库表中提供了更多详细信息

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

有什么方法可以在 ASP.NET 中只转义 ' 和 " 字符吗?

注意:因为我是意大利人,所以我使用意大利名称作为变量,但为了在昨天发布的另一个问题中更清楚起见,我翻译了它们。

4

3 回答 3

5

我的建议是使用SqlCommand带有SqlParameters 的对象来避免所有连接和转义字符大惊小怪。他们会自动为您处理所有这些。此外,它们还将使您免受 SQL 注入攻击。

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

于 2013-04-10T16:38:47.977 回答
0

SQLParameter 更安全,因为您不会忘记清理文本。
您可以转义文本。

string userText = @"you realy shouldn't do this";

string sqlSafeText = sqlSafeText.Replace(@"'", @"''");
于 2013-04-10T16:43:32.963 回答
-1

在 C# 中,您可以像下面这样逃脱"->" to \"

"ABELE\"o\""

你可以转义单引号',如下所示' to ''

"ABELE''o"
于 2013-04-10T16:46:20.890 回答