我正在使用 Win Forms 进行编程,无论用户在文本框中输入什么,都会将 WYSIWYG 转换为字符串,然后通过 Sqlcommand 以 Sqlcommand("INSERT INTO dbo.Call VALUES( '"+ textBox.Text + "');", Connection);
但如果 textBox
包含双引号,它会破坏格式(这可能会发生在单个引号、反斜杠等)。有没有一种简单的方法可以将 Win Forms 或 C# 代码设置为自动将 \
放在这些字符之前?
最佳答案
你不应该那样做 SQL,你应该使用参数化查询,查看 MSDN 文章,或者只是用谷歌搜索大量示例。
https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.parameters(v=vs.110).aspx
编辑:澄清一下,正如有人在您的主要问题中指出的那样,这样做将消除对字符进行转义的需要,同时还可以防止来自该文本框的 SQL 注入(inject)。
关于c# - 自动转义文本框中输入的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35413789/