我正在尝试使用此查询更新数据库:
string query = "UPDATE pagine SET titolo= '" + pa.titolo + @"', contenuto = '" + pa.contenuto + @"' WHERE id= " + pa.id;
我无法让它发挥作用。有关详细信息,请访问Updating an mdb database table
问题可能是我在标题和内容中有一些撇号。 我尝试使用Regex.Escape但它只是在内容中添加了大量的\\\。
有没有办法逃脱ASP.NET中的'和'字符?
注意:因为我是意大利人,我使用意大利语名称作为变量,但我在昨天发布的另一个问题中将其翻译为更清晰。
答案 0 :(得分:4)
我的建议是使用SqlCommand
对象SqlParameter
来避免所有连接和转义字符大惊小怪。他们会自动为您处理所有这些。此外,它们还可以帮助您免受SQL注入攻击。
如果您有选项,我建议您使用类型化DataSet方法并为自己创建一个Typed Query。然后,您可以将其称为代码中的常规.NET函数。
答案 1 :(得分:0)
SQLParameter更安全,因为您不能忘记清理文本 你可以逃避文本。
string userText = @"you realy shouldn't do this";
string sqlSafeText = sqlSafeText.Replace(@"'", @"''");
答案 2 :(得分:0)
在C#中
你可以像下面那样逃离"
- > " to \"
"ABELE\"o\""
您可以使用以下'
' to ''
"ABELE''o"