为了避免SQL Server中的SQL注入攻击,应从字符串中转义所有哪些字符? - c#

我正在编写一个小的帮助程序库,该库正在构造一些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仅接受'作为字符串定界符。

参考方案

任何已知字符集中的每个单个字符。

现在使用经过验证和接受的技术。

数学和科学方程式和Fomulas的数​​据类型-SQL Server 2008? - c#

我正在使用SQL Server2008。我有一个用于教育部门工作的小项目。为此,我需要存储数学和科学方程式和公式。这意味着数据可能包含带有上标和下标的值。我希望以相同的格式保存数据。是否有适合我需求的适当数据类型? 参考方案 如果此列专门用于存储数学方程式和科学公式,那么我将使用Xml列,然后将数据存储在MathML format中。文字段落,例如说明,可以…

连接JavaScript和Sql女士 - javascript

这是我知道足够的html和CSS来建立网站的项目范围。我对MS sql足够了解,可以构建存储过程和复杂的查询。我正在尝试将所有内容提升到新的水平这个问题很广泛,但我需要一些指导。如何构建基于Web的应用程序以使用JavaScript从MS Sql检索数据?现在我正在学习JavaScript,我只知道非常基础的知识,但是只要我能理解这个项目,我就很to昧地学习…

将iSeries JDBC连接到Microsoft Azure SQL Server - java

我已经使用Scott Klement的示例代码创建了使用jtds-1.3.1.jar从我们的iSeries(级别V5R2M0)到我们的Azure SQL Server的连接。斯科特(Scott)的示例RPG ILE程序MSSQLTEST一直到连接值测试失败为止,因为它始终为Null。 Java软件成功加载并且没有显示错误。以下是有问题的代码:prop = J…

SQL Joins与Java代码? - java

我有这样的查询Select Folder.name from FROM FolderTable,ValidFolder, ValidFolderGroup, ValidUser, ValidLocation, ValidDepartment where ValidUser.LocationCode *= ValidLocation.LocationCode …

DISTINCT关键字不适用于SQL Server中的图像数据类型 - c#

我在使用以下查询从SQL Server表中获取记录的同时在SQL查询中使用DISTINCT。SELECT DISTINCT firstname, lastname, profileImage from employee 我的表中profileImage的数据类型为image。问题:当我尝试在查询中使用DISTINCT从表中获取数据时,出现以下错误。 消息42…