我正在从一堆文本文件中生成一些sql insert语句。
这些文本文件通常是用户输入数据。我想清理这些数据,这样就不会破坏插入语句。
例如,一些输入数据,人们使用了“不要”这个词。不会导致sql语句认为字符串已经结束并因此导致错误。
我是否可以调用任何.NET方法将所有这些字符转换为转义码或安全字符?
答案 0 :(得分:26)
只有一个角色你必须逃脱:ansi 0x27,又名单引号:
safeString = unsafeString.Replace("'","''");
答案 1 :(得分:22)
不要消毒你的琴弦。使用参数化查询,因为它们处理所有清理。
您没有指定您正在使用的数据库,因此我假设它是MS SQL Server。微软在官方ASP.net网站上有an article这个问题。另请参阅MSDN了解SqlCommand.Parameters和AddWithValue方法。