繁体   English   中英

从SQL Server获取下一行

[英]Getting next row from SQL Server

我在SQL Server中有一个表,其中包含列id, name, address ,其中id是具有自动增量整数的主键。

我在winforms应用程序中有一个表单,其中有两个按钮:

1 previous
2 next

我想要功能,即当我点击上一个按钮时,我可以从表中获取所选行的前一行。 当我点击下一个按钮时,我可以获得所选行的下一行....

我的表格看起来像这样

在此输入图像描述

您可以选择行ID大于/低于当前Id的前1行,因此如果您的Id为123,您可以选择ID大于123的前1行(第1行),而不知道以下内容应该是124.与前一行相同。

因为它的PK应该排序行,所以你不需要添加排序命令。 当然,在询问第一行或最后一行之后,你应该注意。

declare @CurrentID int = 123;
select top 1 * from [MyTable] where [MyTable].[ID] > @CurrentID;

当然,您最好使用缓存机制来实现它,以避免为每个按钮命中数据库查询,这样您就可以查询一堆行到您的应用程序内存中,而不是通过索引到上一个或下一个项目。

下一个按钮

select * from table where id=id_val+1

上一个按钮

select * from table where id=id_val-1

单击任何按钮后,您应该将值存储在一个名为的变量中

id_val

我会将每一行映射到一个对象,制作一个列表并遍历列表,这样就不会对DB进行大量调用。 当然,如果db中经常发生很多变化,那么这种方法并不好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM