我的项目中存在强类型数据集查询问题。
我有这样的查询:
SELECT * FROM dbo.PositionData WHERE ID_Tracker=@ID_Tracker
哪种方法正常,并且正确生成了数据表函数。
现在我想在查询中添加一个TOP值,该值可以是变量。这看起来像这样,但这不起作用:
SELECT TOP @TopValue * FROM dbo.PositionData WHERE ID_Tracker=@ID_Tracker
还有另一种方法可以完成这项任务吗?
我用我的表适配器的Partial类以某种方式尝试了它,但我不知道如何访问正确的命令(我在CommandCollection中看到我的自定义命令,但我不知道如何评估正确的命令替换CommandText中的内容)。
使用强类型数据集可以做到吗?
任何帮助都会很棒。 非常感谢你。
最诚挚的问候, 西尔
答案 0 :(得分:0)
您可以将其放在括号中:
SELECT TOP (@TopValue) * FROM dbo.PositionData WHERE ID_Tracker=@ID_Tracker
该有效并正确生成表适配器int
的{{1}}参数。
根据您的评论,如果可以在强类型SqlCommand
中参数化ORDER BY
的排序方向。是的,有可能:
DataSet
但是你必须手动将参数添加到命令集中,因为visual studio并不需要。因此
SELECT TOP @TopValue * FROM dbo.PositionData WHERE ID_Tracker=@ID_Tracker
ORDER BY
CASE WHEN @OrderDirection = 'ASC' THEN [Time] END ASC,
CASE WHEN @OrderDirection = 'DESC' THEN [Time] END DESC
properties
(屏幕截图底部)添加parameters
参数,例如:
但也许您应该使用两种不同的方法或存储过程。