SqlParameter 附近的语法不正确

Incorrect syntax near SqlParameter

我有这个代码

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()

包含消息的行

Incorrect syntax near 'XX'

为什么?

SQL 服务器参数需要以 @ 为前缀(不是您使用的 %):

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))