Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 强类型数据集集变量顶级值_.net_Dataset_Typed - Fatal编程技术网

.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。这可能吗?再次非常感谢。