SqlParameter

时间:2016-03-26 19:01:21

标签: sql-server vb.net syntax 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()

与消息

对齐
  

'XX'附近的语法错误

为什么?

1 个答案:

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