Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.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
C# 具有业务逻辑过滤的服务器端分页_C#_Asp.net_Sql Server 2005_Pagination - Fatal编程技术网

C# 具有业务逻辑过滤的服务器端分页

C# 具有业务逻辑过滤的服务器端分页,c#,asp.net,sql-server-2005,pagination,C#,Asp.net,Sql Server 2005,Pagination,我需要在网格标题处显示总行数。 网格还必须处理大量的记录。 所以我决定使用网格自定义分页功能。 我知道如何使用sql2005行号等进行服务器端分页。 但我的困难在于在业务逻辑层完成复杂的行基过滤。 我认为,首先对大量记录进行复杂的筛选(以便知道项目数)是没有效率的,可能会导致内存不足异常 目前,此项目(asp.net web app)正在使用.net framework1.1 sql2005进行生产。 下一个生产版本将使用.net framework4.0。 之后,我们将升级到sql2008 请

我需要在网格标题处显示总行数。 网格还必须处理大量的记录。 所以我决定使用网格自定义分页功能。 我知道如何使用sql2005行号等进行服务器端分页。 但我的困难在于在业务逻辑层完成复杂的行基过滤。 我认为,首先对大量记录进行复杂的筛选(以便知道项目数)是没有效率的,可能会导致内存不足异常

目前,此项目(asp.net web app)正在使用.net framework1.1 sql2005进行生产。 下一个生产版本将使用.net framework4.0。 之后,我们将升级到sql2008

请帮我找到解决那个问题的办法?
谢谢。

如果您担心在生产过程中出现内存不足的异常,我会说,硬件的大小与您拥有的数据量相比不足,或者您的代码确实存在严重错误:)

我希望所有的事情都是一个存储过程,包括过滤、分页和排序。一旦您在服务器中对其进行了排序,并指定了需要检索的页面大小和pag索引,存储的过程将简单地返回您正在查找的已排序记录的单个页面,您可以将其绑定到UI控件


这是你想要的还是我弄错了

我想说,如果您担心在生产中出现内存不足的异常,可能是硬件相对于您拥有的数据量太小,或者是您的代码确实严重错误:)

我希望所有的事情都是一个存储过程,包括过滤、分页和排序。一旦您在服务器中对其进行了排序,并指定了需要检索的页面大小和pag索引,存储的过程将简单地返回您正在查找的已排序记录的单个页面,您可以将其绑定到UI控件


这是你想要的还是我弄错了

如果您使用的是.net 4.0,IQueryable是一个可行的选项。有关详细信息,请参阅。基本上,IQueryable会延迟查询的执行,因此您可以应用业务逻辑,然后从底层数据存储(在您的示例中是sql server)获取相关数据。
但是,在开始这一过程之前,我会对查询性能进行一些微观基准测试。

如果您使用的是.net 4.0,IQueryable是一个可行的选择。有关详细信息,请参阅。基本上,IQueryable会延迟查询的执行,因此您可以应用业务逻辑,然后从底层数据存储(在您的示例中是sql server)获取相关数据。
但是,在开始这一过程之前,我会对查询性能进行一些微观基准测试。

但是过滤太复杂,无法将其放入存储过程中。然后必须进行简化,您可以展示一些如何过滤编辑问题的示例吗?过滤代码在安全模块中用c#编写。这是通过userProfileID参数和为每个配置文件定义的一组权限进行的基于行的安全筛选。但是筛选太复杂,无法将其放入存储过程中。然后必须进行简化,您可以展示一些如何筛选编辑问题的示例吗?筛选代码在安全模块中用c#编写。这是通过userProfileID参数和为每个配置文件定义的一组权限进行的基于行的安全筛选。问题是,从DB获取后,我正在根据一些用c#编写的安全业务规则逻辑筛选结果,因此需要从结果集中删除一些记录,因此,total rows计数器需要减去那些从结果集中删除的行。您可以粘贴一些在业务层中执行的筛选的示例代码吗?问题是,在从DB获取数据之后,我正在根据一些用c#编写的安全业务规则逻辑筛选结果,因此需要删除一些记录已从结果集中删除,因此total rows计数器需要减去已从结果集中删除的行。能否粘贴一些在业务层中执行的筛选的示例代码?