2013-04-08 32 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