Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.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
Sql 通过web服务或WCF进行服务器端分页_Sql_Wcf_Web Services - Fatal编程技术网

Sql 通过web服务或WCF进行服务器端分页

Sql 通过web服务或WCF进行服务器端分页,sql,wcf,web-services,Sql,Wcf,Web Services,我已经在应用程序中实现了对大量数据的分页,方法是允许用户输入他们希望返回多少记录的“页面大小”数字。它与最后一条记录的行号一起传递给存储过程,并通过SELECT row_number()检索。。等等 我的问题是,这种方法不允许用户过滤或搜索整个数据集。当他们在客户端进行筛选时,他们只能对获得的大约100行进行筛选或排序 有没有一种方法允许在服务器端进行这种分页?所以,也许可以保留数据服务器端,在那里进行过滤或排序,并返回他们可以翻页的数据块?这样做的原因是,如果他们选择检索整个数据集,会有相当长

我已经在应用程序中实现了对大量数据的分页,方法是允许用户输入他们希望返回多少记录的“页面大小”数字。它与最后一条记录的行号一起传递给存储过程,并通过SELECT row_number()检索。。等等

我的问题是,这种方法不允许用户过滤或搜索整个数据集。当他们在客户端进行筛选时,他们只能对获得的大约100行进行筛选或排序

有没有一种方法允许在服务器端进行这种分页?所以,也许可以保留数据服务器端,在那里进行过滤或排序,并返回他们可以翻页的数据块?这样做的原因是,如果他们选择检索整个数据集,会有相当长的等待时间,因为这是一个大量的记录

winforms应用程序正在使用标准的soap web服务,但如果需要,我可能能够实现WCF服务


谢谢你的建议或链接!我已经看到了一些实现这一点的方法,但不确定soap web服务的最佳方法。

我们使用asp.net/wcf也遇到了类似的问题。我们最终得到的最佳方法是使用客户端网格(例如jqgrid和jquery(ajax))调用返回数据的web服务(json)。然而,作为asp.net web表单开发人员,我们最初并不舒服

您提到的另一种方法是将数据保存在服务器上(有时也保存会话),但这实际上取决于数据大小

此外,在一个地方,我们的数据不会经常更改,您可以将其缓存到某个级别或将xml文件保存在服务器上等。每天之后,我们都会通过后端处理更新缓存


希望这会有所帮助。

您可以通过将sql中的完整数据集放入服务器(在服务中)上的数据表来管理它。然后,通过组合页码、页面大小、排序方向和行过滤器(您可以将其设置为web方法的参数),您将只返回所需的行

如果连接到sql的速度不是问题,那么这将正常工作