Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.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中的中间行_Sql_Linq To Sql_Datagrid - Fatal编程技术网

选择sql中的中间行

选择sql中的中间行,sql,linq-to-sql,datagrid,Sql,Linq To Sql,Datagrid,我的SQLServer数据库中有一个表,其中包含近100K条记录,还有一个web应用程序,我想在其中显示这些行的分页gridView表示。显然,由于Ajax在web上的性能,我应该过滤这些行,并将其中的一小部分返回给ClientServer 这是我的主要问题。选择中间行的最佳方法是什么?例如,如何选择50000到50010之间的行?是否有一种类似“选择前10行”或“选择下10行”的方法可以从表行的中间选择行 我在.NETMVCWeb应用程序中使用linq2sql,还可以编写SQLStoredPr

我的SQLServer数据库中有一个表,其中包含近100K条记录,还有一个web应用程序,我想在其中显示这些行的分页gridView表示。显然,由于Ajax在web上的性能,我应该过滤这些行,并将其中的一小部分返回给ClientServer

这是我的主要问题。选择中间行的最佳方法是什么?例如,如何选择50000到50010之间的行?是否有一种类似“选择前10行”或“选择下10行”的方法可以从表行的中间选择行

我在.NETMVCWeb应用程序中使用linq2sql,还可以编写SQLStoredProcess

如有任何建议,将不胜感激

查看此链接,可以使用rownumber根据排序顺序获取所需的行。只需添加一个where子句,其中rownumber位于分页限制之间


查看此链接,可以使用rownumber根据排序顺序获取所需的行。只需添加一个where子句,其中行数在您的分页限制之间。

不确定这一点,但无论如何

SELECT *
FROM (SELECT ROW_NUMBER() OVER(ORDER BY colm) RowNumr, colm FROM table) t
WHERE RowNumr BETWEEN 50000 AND 50010

不确定,但无论如何

SELECT *
FROM (SELECT ROW_NUMBER() OVER(ORDER BY colm) RowNumr, colm FROM table) t
WHERE RowNumr BETWEEN 50000 AND 50010
在Linq2Sql中,这并不难。您可以使用:

dataContext.GetTable()
    .Skip(50000)
    .Take(10)
    .ToList();
在这个问题上,有更多的解释。Linq2Sql将实际使用行号生成sql

一些小提示,表达的顺序很重要:

哪里 选择 .OrderBy 跳过 拿 在Linq2Sql中,这并不难。您可以使用:

dataContext.GetTable()
    .Skip(50000)
    .Take(10)
    .ToList();
在这个问题上,有更多的解释。Linq2Sql将实际使用行号生成sql

一些小提示,表达的顺序很重要:

哪里 选择 .OrderBy 跳过 拿 试试这个:

select * 
from(select table_name.*,rownum as rn from table_name order by column desc) table_name
where rn between 5000 and 5010;
试试这个:

select * 
from(select table_name.*,rownum as rn from table_name order by column desc) table_name
where rn between 5000 and 5010;

谢谢。使用linq做这件事太好了。非常感谢。使用linq很好。谢谢我的朋友。我试过你的代码,很完美。但我更喜欢linq方法。干杯谢谢我的朋友。我试过你的代码,很完美。但我更喜欢linq方法。干杯