在这种情况下需要参数化吗?

时间:2016-09-13 08:06:50

标签: sql sql-server sqlite uwp

我正在设计一个使用SQLite数据库来存储其信息的UWP应用程序。从以前的研究中我可以看出,使用SQLite函数SQLiteConnection.Update()SQLiteConnetion.Insert()函数是安全的,因为输入在进入数据库之前已经过消毒。

我需要做的下一步是将数据与在线数据库同步 - 在本例中为SQL Server - 使用服务层作为我的介绍。鉴于数据之前已被SQLite数据库插件清理,在将它们传递到SQL Server数据库之前,是否仍需要使用服务层对参数值进行参数化?

简单的假设是肯定的,因为尽管它们被SQLite输入清理了,但它们在技术上仍然是原始字符串,如果在发送它们时没有参数化,可能会对主数据库产生影响。

我应该只是简单地使用"如果有疑问,参数化" ?

1 个答案:

答案 0 :(得分:2)

我会说你应该总是使用SQL参数。您应该这样做有几个原因:

  • 安全。
  • 性能。如果使用参数,则执行计划的重用可能会增加。有关详细信息,请参阅此article
  • 可靠性。如果通过连接字符串来构建SQL命令,则总是容易出错。