强类型数据集设置变量 TOP 值
Strong Typed Dataset set variable TOP value
我的项目中的强类型数据集查询有问题。
我有这样的查询:
SELECT * FROM dbo.PositionData WHERE ID_Tracker=@ID_Tracker
工作正常,数据table 函数已正确生成。
现在我想在查询中添加一个 TOP 值,它可以是可变的。这可能看起来像这样,但这不起作用:
SELECT TOP @TopValue * FROM dbo.PositionData WHERE ID_Tracker=@ID_Tracker
还有其他方法可以完成这个任务吗?
我用我的 table 适配器的部分 class 以某种方式尝试了它,但我不知道如何访问正确的命令(我在 CommandCollection 中看到我的自定义命令,但我不知道如何评估正确的命令来替换 CommandText 中的内容)。
是否可以使用强类型数据集来做到这一点?
任何帮助都会很棒。
非常感谢。
此致,
西尔文
你可以把它放在括号里:
SELECT TOP (@TopValue) * FROM dbo.PositionData WHERE ID_Tracker=@ID_Tracker
这是有效的,并为 table-adapter 的 SqlCommand
正确生成了 int
参数。
根据您的评论,如果可以在强类型 DataSet
中参数化 ORDER BY
的 sort-direction。是的,有可能:
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
但是您必须手动将参数添加到 command-collection,因为 visual studio 不需要。因此
- right-click 命令和
- 点击
properties
- 单击
parameters
(在屏幕截图的底部)
添加 @OrderDirection
参数,如下所示:
但也许您应该使用两种不同的方法或使用 stored-procedure。
我的项目中的强类型数据集查询有问题。
我有这样的查询:
SELECT * FROM dbo.PositionData WHERE ID_Tracker=@ID_Tracker
工作正常,数据table 函数已正确生成。
现在我想在查询中添加一个 TOP 值,它可以是可变的。这可能看起来像这样,但这不起作用:
SELECT TOP @TopValue * FROM dbo.PositionData WHERE ID_Tracker=@ID_Tracker
还有其他方法可以完成这个任务吗?
我用我的 table 适配器的部分 class 以某种方式尝试了它,但我不知道如何访问正确的命令(我在 CommandCollection 中看到我的自定义命令,但我不知道如何评估正确的命令来替换 CommandText 中的内容)。
是否可以使用强类型数据集来做到这一点?
任何帮助都会很棒。 非常感谢。
此致, 西尔文
你可以把它放在括号里:
SELECT TOP (@TopValue) * FROM dbo.PositionData WHERE ID_Tracker=@ID_Tracker
这是有效的,并为 table-adapter 的 SqlCommand
正确生成了 int
参数。
根据您的评论,如果可以在强类型 DataSet
中参数化 ORDER BY
的 sort-direction。是的,有可能:
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
但是您必须手动将参数添加到 command-collection,因为 visual studio 不需要。因此
- right-click 命令和
- 点击
properties
- 单击
parameters
(在屏幕截图的底部)
添加 @OrderDirection
参数,如下所示:
但也许您应该使用两种不同的方法或使用 stored-procedure。