强类型数据集设置变量TOP值

时间:2015-01-29 16:24:53

标签: .net dataset typed

我的项目中存在强类型数据集查询问题。

我有这样的查询:

SELECT * FROM dbo.PositionData WHERE ID_Tracker=@ID_Tracker

哪种方法正常,并且正确生成了数据表函数。

现在我想在查询中添加一个TOP值,该值可以是变量。这看起来像这样,但这不起作用:

SELECT TOP @TopValue * FROM dbo.PositionData WHERE ID_Tracker=@ID_Tracker

还有另一种方法可以完成这项任务吗?

我用我的表适配器的Partial类以某种方式尝试了它,但我不知道如何访问正确的命令(我在CommandCollection中看到我的自定义命令,但我不知道如何评估正确的命令替换CommandText中的内容)。

使用强类型数据集可以做到吗?

任何帮助都会很棒。 非常感谢你。

最诚挚的问候, 西尔

1 个答案:

答案 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参数,例如:

add parameter screenshot

但也许您应该使用两种不同的方法或存储过程。