如何反转ADO.NET DataTable的行顺序?

时间:2011-04-27 20:00:55

标签: ado.net

我有一个通过反序列化JSON消息获得的DataTable。我不知道列名是什么,所以我不能在特定的列上使用DataView.Sort。我只想颠倒行的顺序。这是我试过的:

var reversedTable = new DataTable();
for (var row = originalTable.Rows.Count - 1; row >= 0; row--)
    reversedTable.Rows.Add(response.Messages.Rows[row]);

但抛出“System.ArgumentException:此行已经属于另一个表。”我怎样才能完成这个看似简单的任务呢?提前谢谢,

解答:

 var reversed = original.Clone();
 for (var row = original.Rows.Count - 1; row >= 0; row--)
     reversed.ImportRow(original.Rows[row]);

1 个答案:

答案 0 :(得分:1)

我之前看过那个错误信息..... 您不能直接在一个表中添加一行到另一个表。首先,你必须克隆表,然后你可以通过并为每一行调用ImportRow()。

查看geekzilla以获得一个不错的例子。

我希望有所帮助!