如何获得排序后的数据表的前10行?
问题描述:
我想按照与前面的DataTable相同的顺序从DataTable中获得前10行。如何获得排序后的数据表的前10行?
使用下面的代码,我可以将它在dt1中排序并仅将10行导入到dt2中,但它不会按排序顺序导入行。我需要它来保持排序顺序。您的帮助将不胜感激。
DataTable dt2 = dt1.Clone();
dt1.DefaultView.Sort = "x DESC";
for (int i = 0; i < 10; i++)
{
dt2 .ImportRow(dt1.Rows[i]);
}
答
只需使用一个查询和排序是这样的:
DataTable dt2 = dt.Clone();
//get only the rows you want
DataRow[] results = dt.Select("", "x DESC");
//populate new destination table
for(var i=0; i < 10; i++)
dt2.ImportRow(results[i]);
希望它能帮助!
答
void GetSortedTable(int count, string order = "DESC")
{
// Get our data table sorted by 'x' in a specific 'order'.
DataRow[] results = dt.Select("", "x " + order);
// Create a new empty data table.
DataTable dt2 = dt.Clone();
// Import the resulting 'count' rows into it.
for (int i = 0; i < count; ++i)
dt2.ImportRow(results[i]);
return dt2;
}
它引发此错误语法错误:'10'运算符后缺少操作数。 – Seesharp 2012-03-17 19:23:40
对不起,我使用了不正确的代码。我已经编辑它,看看它现在是否适用于你。 – Reinaldo 2012-03-17 19:27:50
感谢您的编辑,现在它引发了这个语法错误:'DESC'操作符后缺少操作数。 – Seesharp 2012-03-17 19:34:19