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

本文关键字:输入 特殊字符 转义 文本 | 更新日期: 2023-09-27 18:34:43

我正在使用 Win Forms 编程,用户放入文本框中的任何内容都会被 WYSIWYG 转换为字符串,然后通过 Sqlcommand 以粗略的 Sqlcommand("INSERT INTO dbo.Call VALUES('" + textBox.Text + "');", Connection); 形式发送,但如果textBox包含双引号,它会搞砸格式(这可能会发生在单引号、反斜杠等(。有没有一种简单的方法可以将 Win 窗体或代码 C# 设置为自动将'放在这些字符之前?

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

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

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

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

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

有关 MSDN 的更多信息

使用

Uri.EscapeDataString

C# 中的方法

它将返回字符串的转义输出。