从 SQL Server 获取下一行

3
我在SQL Server中有一张表,它有三列:id、name和address。其中,id是自增整数的主键。
我在一个WinForms应用程序中有一个表单,其中包含两个按钮:
1 previous
2 next

我想要的功能是:当我点击“上一个”按钮时,我可以从表格中获取所选行的前一行。同样地,当我点击“下一个”按钮时,我可以获取所选行的后一行。
我的表单看起来像这样:
4个回答

3
您可以选择第一行,其中行 ID 大于/小于您当前的 ID。例如,如果您的 ID 是 123,则可以选择第一行 ID 大于 123 的行,而无需知道下一行应该是 124。同样适用于前一行。
由于这是主键,因此行应按顺序排序,因此您不需要添加排序命令。当然,在请求第一行之前或在最后一行之后请求下一行时,应特别注意。
declare @CurrentID int = 123;
select top 1 * from [MyTable] where [MyTable].[ID] > @CurrentID;

当然,为了避免每次点击按钮都要进行数据库查询,最好使用缓存机制,可以将一大批行查询到应用程序内存中,然后按索引转到前一个或下一个项目。

你能给我那个查询的语句吗? - siddharth
1
Tamir,您建议每次按钮按下都进行一次数据库调用吗? - Mithir
@Tamir,因为我不知道你所说的查询,只针对一个按钮即“上一页”或“下一页”,请。 - siddharth

1

下一步按钮

select * from table where id=id_val+1

上一页按钮

select * from table where id=id_val-1

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

id_val


1
我会将每一行映射为一个对象,然后创建一个列表并遍历该列表,这样您就不需要频繁地调用数据库。 当然,如果数据库中通常有很多更改,则此方法不适用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接