0

I have this code

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

It throws a SqlException on the

Dim rd = q.ExecuteReader()

line with message

Incorrect syntax near 'XX'

Why?

marc_s
  • 732,580
  • 175
  • 1,330
  • 1,459
Misaz
  • 3,694
  • 2
  • 26
  • 42

1 Answers1

4

SQL Server parameters need to be prefixed with a @ (not a % as you've used it):

SELECT * 
FROM [ddddd] 
WHERE [Day] >= @XX AND [Day] <= @YY

and then also use the leading @ when declaring the parameters:

q.Parameters.Add(New SqlParameter("@XX", rangeFrom.Value))
q.Parameters.Add(New SqlParameter("@YY", rangeTo.Value))
marc_s
  • 732,580
  • 175
  • 1,330
  • 1,459