.net 强类型数据集集变量顶级值
我的项目中的强类型数据集查询有问题 我有这样一个问题:.net 强类型数据集集变量顶级值,.net,dataset,typed,.net,Dataset,Typed,我的项目中的强类型数据集查询有问题 我有这样一个问题: SELECT * FROM dbo.PositionData WHERE ID_Tracker=@ID_Tracker 工作正常,并且正确生成了datatable函数 现在我想给查询添加一个最大值,它可以是可变的。这可能看起来像这样,但这不起作用: SELECT TOP @TopValue * FROM dbo.PositionData WHERE ID_Tracker=@ID_Tracker 有没有其他方法来完成这项任务 我用我的表适
SELECT * FROM dbo.PositionData WHERE ID_Tracker=@ID_Tracker
工作正常,并且正确生成了datatable函数
现在我想给查询添加一个最大值,它可以是可变的。这可能看起来像这样,但这不起作用:
SELECT TOP @TopValue * FROM dbo.PositionData WHERE ID_Tracker=@ID_Tracker
有没有其他方法来完成这项任务
我用我的表适配器的部分类尝试了它,但我不知道如何访问正确的命令我在CommandCollection中看到了自定义命令,但我不知道如何计算正确的命令来替换CommandText中的某些内容
使用强类型数据集可以做到这一点吗
任何帮助都会很好。
多谢各位
致以最良好的祝愿,
西尔文你可以把它放在括号里:
SELECT TOP (@TopValue) * FROM dbo.PositionData WHERE ID_Tracker=@ID_Tracker
这是有效的,并为表适配器的SqlCommand正确生成int参数
如果可以在强类型数据集中参数化ORDER BY的排序方向,请根据您的评论。是的,有可能:
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
但是您必须手动将参数添加到命令集合中,因为VisualStudio不需要。所以
在命令上单击鼠标右键,然后单击鼠标右键
单击属性
单击屏幕截图底部的参数
添加@OrderDirection参数,如下所示:
但也许您应该使用两种不同的方法或一个存储过程来代替。效果很好。您知道下面的查询是否有类似的内容:从dbo.PositionData中选择TOP@TopValue*,其中ID\u Tracker=@ID\u Tracker ORDER BY[Time]@OrderDirection我想在这里说,订单是ASC还是DESC。这可能吗?再次非常感谢。