【问题标题】:Incorrect syntax near SqlParameterSqlParameter 附近的语法不正确
【发布时间】:2016-03-26 19:01:20
【问题描述】:

我有这个代码

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”附近的语法不正确

为什么?

【问题讨论】:

  • % 的标志是什么?

标签: sql-server vb.net syntax sqlparameter


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2015-12-12
    • 1970-01-01
    • 2013-12-16
    • 1970-01-01
    • 2018-08-14
    • 2011-03-11
    • 2014-02-16
    • 2017-01-11
    • 2020-02-06
    相关资源
    最近更新 更多