【发布时间】:2018-01-24 21:19:03
【问题描述】:
我正在尝试使用 vb.net 中的 sql 字符串从数据库中检索数据集。
代码:
Dim sSql As String = "Select * FROM mytable where id = " + propID
Dim ds As DataSet = New DataSet()
Try
ds = coApp.ConnectionManager.LoadSQLToDs(sSql)
Catch ex As Exception
propID 变量是一个包含“/”的值,例如“1/83/42”。 异常消息是:'/' 附近的语法不正确。 如何在我的 sql 字符串中传递这个值?
【问题讨论】:
-
用单引号括起来。 IE。 "Select * FROM mytable where id = '" + propID + "'"
-
OP:使用参数,这将修复错误。不要执行字符串连接建议,这是一种不好的做法。请忽略这些建议并编写好的代码。
-
使用 SQL 参数意味着永远不必担心特殊字符、数据类型转换、sql 注入和许多其他事情
-
不幸的是,
LoadSQLToDs()可能从根本上被破坏,将迫使 OP 编写极其不安全的代码。 -
谦虚的教训将是当有人通过“1; DROP mytable”
标签: sql sql-server vb.net