我有一个使用VB.Net前端与SQL Server 2005后端通过ADO.Net通信的.Net Web系统。基本上,我想要做的是:
Dim command As SqlCommand = New SqlCommand("", connection)
command.CommandText = "SELECT * FROM someTable ORDER BY orderValue @SortOrder"
Dim sortParam As SqlParameter = New SqlParameter("@SortOrder", SqlDbType.varChar, 3)
sortParam.Value = "ASC"
command.Parameters.Add(sortParam)
command.Prepare()
reader = command.ExecuteReader()
通过查询字符串等方式传递排序参数。这段代码会抛出“Incorrect syntax near '@SortOrder'. Statement(s) could not be prepared.”的错误。
这种情况是否可能存在,或者说我有一个非常愚蠢的语法错误没有看到?
(是的,客户端仅运行 .net 2.0,所以基于 LINQ 的解决方案不可行,遗憾。)
谢谢大家!
更新/响应:
好吧,我也是这么想的。感谢大家给予的支持。(为了一些背景,该命令字符串目前正在动态构建,但我们正在将系统转向更多准备好的语句方向,这是我不知道可能存在的边缘情况之一。)
再次感谢!