TableAdapter 查询配置向导无法识别查询中的某些参数

TableAdapter Query Configuration Wizard doesn't recognize certain parameters in my query

提问人:WhiteGlint 提问时间:10/24/2023 最后编辑:Dale KWhiteGlint 更新时间:10/24/2023 访问量:32

问:

我正在 Visual Studio 2022 中的项目中的 xsd 文件中设置表适配器。我遇到的问题是,在我的查询中,我的 WHERE 子句中有参数被表适配器识别并且它们工作正常,我的 ORDER BY 子句中也有无法识别的参数。

例如,我有一个这样的查询

SELECT *
FROM Table
WHERE data = @data
ORDER BY @sortDirection AND @sortField

问题是表适配器可以识别@data参数,当我在 DAO 中调用适配器时,我可以@data分配一个值。但是,它看不到@sortDirection和@sortField因此,当我尝试为它们分配值时(在这种情况下,我将它们分配给 GridView.Attributes(“sortDirection”) 和 GridView.Attributes(“sortField”))),我收到一个错误,指出

“公共可重写函数 MyFunction() 作为 MyDataset.MyTableAdapter”的参数过多。

对此问题的任何帮助将不胜感激。

sql-server vb.net 数据集 visual-studio-2022 tableadapter

评论

0赞 Stuck at 1337 10/24/2023
好吧,您不能在 ORDER BY 中参数化排序列或排序方向,因此 SQL 永远不会以这种方式有效。我不使用适配器,所以我不确定,但我认为您不应该在查询文本中将它们指定为参数。
0赞 jmcilhinney 10/24/2023
将 SQL 查询参数视为类似于 VB 方法参数。在 VB 中,您能否通过方法参数(例如类型或属性的名称)传入标识符?当然不能。只能使用参数来传入值。SQL 参数也是如此。它们只能用于传递值,而不能用于传递标识符,例如表或列的名称。

答: 暂无答案