2013-04-08 31 views
0

我有一个报告工具的服务器 - 客户端体系结构, 服务器生成报告并由客户端显示它。对输入的数据集进行排序

我有一个表创建了一个强类型的数据集,并填充了数据行。 数据集始终是连通的,因为我使用LINQ to Entities运行的代码填充它。 数据集的目的是要显示在报告中, 而我使用的是强类型DataSet,使服务器和客户端将在同步关于列的名称,类型等..

现在,我希望数据集中的数据按某些列进行排序,我知道如何使用数据视图执行此操作,但由于没有强类型化数据视图,因此使用无类型化数据视图的 似乎无法达到使用类型化数据集的目的。

我希望有关如何解决此问题的任何建议。

+1

威尔[这个答案](http://stackoverflow.com/a/3917100/706456)帮助? – oleksii 2013-04-08 10:48:24

+0

它确实有帮助,非常感谢 – 2013-04-08 11:22:49

回答

0

这个建议不是正确的做法,使用dataviews要好得多,因为你只会处理一个数据副本。

MyDataSet.MyDataRow[] drArray = (MyDataSet.MyDataRow[]) myDataTable.Select(filterString, sortString, DataViewRowState.OriginalRows); 
MyDataSet.MyDataTable dt = (MyDataSet.MyDataTable) myDataTable.Clone(); 
if (dr.Length != 0) 
{ 
    foreach (MyDataSet.MyDataRow dr in drArray) 
    { 
     dt.ImportRow(dr); 
    } 
} 

借鉴:http://social.msdn.microsoft.com/Forums/en-US/adodotnetdataset/thread/da8793cc-5227-4871-a5aa-dfb59c74d8d4/

+0

谢谢你能否解释为什么在链接中提出的答案是错误的?虽然你的答案似乎工作,我宁愿排序在LINQ比自由风格的文本。 – 2013-04-08 11:53:07

+0

使用数据集时,数据视图只是数据集数据的表示形式。在我的示例代码中,我们正在创建数据集的副本,实质上是复制对象和数据。这对于小数据集可能看起来有利,但对于较大的数据集,您的应用程序可能会消耗大量内存。 – DragonZero 2013-04-08 17:01:28