我有一个带有 VB.Net 前端的 .Net Web 系统,它通过 ADO.Net 与 SQL Server 2005 后端通信。本质上,我想做的是:
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()
排序顺序将通过查询字符串等传递。此代码抛出“'@SortOrder' 附近的语法不正确。无法准备语句。”
这甚至可能吗,还是我没有看到一些非常愚蠢的语法错误?
(而且,是的,客户端只运行 .net 2.0,所以遗憾的是,基于 LINQ 的解决方案无法工作。
谢谢大家!
更新/回应:
嗯,我就是这么想的。谢谢大家的理智检查。(在某些情况下,命令字符串当前正在动态构建,但我们正在将系统向更准备好的语句方向移动,这是我不知道可能的边缘情况之一。
再次感谢!