我有这段代码
Dim q = New SqlCommand("SELECT * FROM [ddddd] WHERE ([Day] >= %XX ) AND ([Day] <= %YY )")
q.Parameters.Add(New SqlParameter("XX", rangeFrom.Value))
q.Parameters.Add(New SqlParameter("YY", rangeTo.Value))
q.Connection = dbc
Dim rd = q.ExecuteReader()
' ...
它会在
上抛出SqlException
Dim rd = q.ExecuteReader()
与消息
对齐'XX'附近的语法错误
为什么?
答案 0 :(得分:4)
SQL Server参数需要以@
为前缀(而不是您使用过的%
):
SELECT *
FROM [ddddd]
WHERE [Day] >= @XX AND [Day] <= @YY
然后在声明参数时使用前导@
:
q.Parameters.Add(New SqlParameter("@XX", rangeFrom.Value))
q.Parameters.Add(New SqlParameter("@YY", rangeTo.Value))