我需要在SQL查询中转义哪些字符

Kau*_* DB 3 c# sql escaping sql-server-2008

插入字符串时我需要检查和转义的字符是什么?

INSERT INTO gamedata (gamename, url, dlink) 
VALUES ('mady's run', 'http://www.sdfa.com', 'http://extabit.com/sdf')</code>
Run Code Online (Sandbox Code Playgroud)

我该如何逃避这些角色?
我正在使用C#并使用SQL Server Management Studio 2008管理数据库.

Jon*_*eet 22

不要逃避它们.只是不要在SQL中包含值.而是使用参数化SQL并直接为参数提供值.没有转义,没有引用,没有转换 - 并且没有SQL注入攻击的风险.

有关示例,请参阅文档SqlCommand.Parameters.

您应该将此应用于所有值 - 而不仅仅是您预期具有"特殊"字符的值.它将代码(SQL)与数据(值)分开,避免了SQL注入攻击,并且还避免了不必要的转换(如果您不小心,这可能会导致日期/时间值和数字出现问题).