我使用Win Forms进行编程以及用户在文本框中放置的内容正在将WYSIWYG转换为字符串,然后通过Sqlcommand以Sqlcommand("INSERT INTO dbo.Call VALUES('" + textBox.Text + "');", Connection);
的粗略形式发送,但是如果{{1}包含双引号,它将与格式化相关(这可能会出现单引号,反斜杠等)。有没有一种简单的方法可以设置Win Forms或代码C#自动将textBox
放在这些字符之前?
答案 0 :(得分:5)
你不应该像这样做SQL,你应该使用参数化查询,查看MSDN文章,或者只是谷歌搜索大量的例子。
https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.parameters(v=vs.110).aspx
编辑:澄清一下,正如有人在你的主要问题中指出的那样,这样做会消除逃避角色的需要,同时还要从该文本框中对抗SQL注入。
答案 1 :(得分:0)
您可以使用模式正则表达式替换所需的字符。
答案 2 :(得分:0)
使用
Uri.EscapeDataString
C#中的方法
它将返回字符串的转义输出。