vb.net 查询数据表选择前 n 条记录给出错误
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/18929986/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
querying data table selecting top n records giving error
提问by C Sharper
I am implementing paging in my datalist.
我正在我的数据列表中实现分页。
For that i have to query on following datatable:
为此,我必须查询以下数据表:


From this data table i want to select top n records(indexes) where index> n
从这个数据表中,我想选择前 n 个记录(索引),其中索引> n
I made following query:
我做了以下查询:
DTResult.Select("top " & Integer.Parse(ddlPage.SelectedValue.ToString()), "Index > " & Integer.Parse(ddlPage.SelectedValue.ToString()))
note: ddlPage is my dropdown through which i am getting number 'n' i.e. selection of top 5/10/15... records.
注意:ddlPage 是我的下拉列表,通过它我得到了数字“n”,即前 5/10/15... 记录的选择。
Above query gives me error:
上面的查询给了我错误:
Cannot find column Index > 10.
As we can see records above index 10 are present.
正如我们所见,存在索引 10 以上的记录。
Then also its giving me error.
然后它也给了我错误。
What is wrong in my query?
我的查询有什么问题?
Please help me.
请帮我。
(Syntax does not matters to me, answer in any of the language (c# or vb) can help me)
(语法对我来说无关紧要,用任何一种语言(c# 或 vb)回答都可以帮助我)
回答by Paul Zahra
If you want top ten where index > 10
如果你想要指数 > 10 的前十名
DataRow[] results = DTResult.Select("Index > 10").AsEnumerable().Take(10);
This assumes that records are stored in order of index
这假设记录按索引顺序存储
回答by MadOrange
DataRow[] drRow= datatTable.AsEnumerable().Take(10).ToArray();
回答by kwingho
public DataRow[] Select(
string filterExpression,
string sort
)
http://msdn.microsoft.com/en-us/library/way3dy9w.aspx
http://msdn.microsoft.com/en-us/library/way3dy9w.aspx
try:
尝试:
var n = ....;
var result = DTResult.AsEnumerable()
.Where(row => row.Field<int>("Index") > n)
.OrderBy(row => row.Field<int>("Index"))
.Take(n);

