我正在编写一个小型帮助程序库,它正在构建一些 SQL 并针对 SQL Server 数据库执行它。
我知道最好的方法是使用参数化查询而不是连接字符串,但这不是一个选项,因为我需要以人类可读的方式记录对数据库执行的所有查询,以便在查看时管理员他们可以自由地查看用于搜索的实际值在where
子句中。
在将该字符串放入查询并执行之前,我必须转义哪些字符?
我知道单引号'
是必须的,但我必须关心其他事情吗?
这是一些示例代码:
var condition = new Condition();
var table = new PersonTable();
condition.Add(table.Name.IsEqualTo("John's"));
这将转换为
WHERE [dbo].[Person].[Name] = N'John''s'
如果我只接受方法并用 逃避单人,你string
如何IsEqualTo
攻击'
呢''
?
据我所知,SQL Server 只接受'
字符串分隔符。