自动转义文本框中输入的特殊字符

Automatically escape special characters entered in text box

我正在使用 Win Forms 进行编程,无论用户在文本框中输入什么,都会将所见即所得转换为字符串,然后通过 Sql 命令以 Sqlcommand("INSERT INTO dbo.Call VALUES('" + textBox.Text + "');", Connection); 的粗略形式发送,但是如果 textBox 包含一个双引号,它会搞砸格式(这可能会发生在单引号、反斜杠等)。有没有一种简单的方法可以将 Win Forms 或 C# 代码设置为自动将 \ 放在这些字符之前?

您不应该那样做 SQL,您应该使用参数化查询,查看 MSDN 文章,或者只是 google 它以获取大量示例。

https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.parameters(v=vs.110).aspx

编辑:澄清一下,正如有人在您的主要问题中指出的那样,这样做将消除对字符进行转义的需要,同时还可以防止 SQL 从该文本框注入。

您可以使用模式正则表达式来替换您需要的字符。

More Information on MSDN

使用

Uri.EscapeDataString

C# 中的方法

它将 return 为您的字符串转义输出。