Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.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# 如何提高ASP.NET中GridView或DetailsView的效率?_C#_Asp.net_.net_Gridview_Detailview - Fatal编程技术网

C# 如何提高ASP.NET中GridView或DetailsView的效率?

C# 如何提高ASP.NET中GridView或DetailsView的效率?,c#,asp.net,.net,gridview,detailview,C#,Asp.net,.net,Gridview,Detailview,在ASP.net中,当我们在Gridview或DetailsView上执行分页时,Gridview每次都会从数据库中获取所有行 假设我们的数据库包含100行,并且我们在Gridview中配置了页面大小为每页10条记录的分页。但是,每当我们为任何特定的页码单击Gridview的pager控件时,Gridview应该只从数据库中获取特定的10行 如果我们点击第3页,那么它应该只查询第21-30行,但它会获取所有行,而忽略其余的行。这只是浪费资源 请其中任何一位向我推荐解决此问题的方法好吗?要实现此优

在ASP.net中,当我们在Gridview或DetailsView上执行分页时,Gridview每次都会从数据库中获取所有行

假设我们的数据库包含100行,并且我们在Gridview中配置了页面大小为每页10条记录的分页。但是,每当我们为任何特定的页码单击Gridview的pager控件时,Gridview应该只从数据库中获取特定的10行

如果我们点击第3页,那么它应该只查询第21-30行,但它会获取所有行,而忽略其余的行。这只是浪费资源


请其中任何一位向我推荐解决此问题的方法好吗?

要实现此优化的数据获取,您必须实现自定义分页(而不是使用GridView分页)。此外,应该使用SQL只获取要在页面上显示的行(而不是所有数据)

请参阅以下相关链接:

您可以使用


另外,如果您使用的是Sql Server 2005+,您可以尝试使用ROW_NUMBER函数对数据库进行分页,如本文所述: