2009-06-01 24 views
1

是否有.Net项目/ dll,支持用户提供的输入到各种数据库系统的数据库查询转义?转义SQL查询 - 支持.Net中的不同数据库平台

我希望我们的整个团队能够标准化和使用一个模块来执行转义用户提供的输入,然后将用于参数化SQL查询。

理想情况下,我想在配置文件中指定数据库系统(oracle,SqlServer,mySql等),并且能够调用Escape(variableName),并且它会根据当前数据库设置转义字符串内容在web.config文件中。

如果没有,未来最好的事情会是这样的EscapeForOracle,EscapeForSqlServer等

在最低限度的项目应该支持Oracle,SqlServer的和MySQL。

我想知道如果我需要创建这个内部或如果现有的商业/开源产品存在做到这一点。

+0

你说“参数化的SQL查询”,然后你提到了转义。不确定你的意思。 你能举一些你想要完成的具体例子吗?如果你想要进入内部开发的路线,我可能会有可用的开始代码。 – 2009-06-01 22:50:13

+0

Lasse是正确的 - 如果您为所有用户提供的数据使用参数(并且不要在SP内部构建动态SQL),那么您不必转义它 - 这就是关键所在。 – 2009-06-01 22:53:29

回答

2

我不认为你会需要这样的事情。

运行参数化查询/存储过程时,请使用参数集合。
指定适当的数据类型,长度,精度&提供有效值。
转义将由DB提供者完成。

让我知道,如果我没有正确理解你的问题。

0

在.NET中,可以使用DbReader和DbConnection等通用类而不是SqlConnection。像shahkalpesh和Lasse V. Karlsen说的,你可以使用参数,框架或驱动程序将处理你的逃跑。但实际上,如果您希望为Oracle和Sql Server开发产品,那么您就是在讨论主要开销。正确转义仅仅是冰山一角。如果你还没有安装Oracle和Sql Server测试服务器,你可能还没有开始:)

相关问题