2014-06-16 28 views
2

我有一個強大的類型DataTable指定帳戶至極我整理上Account.FullName:轉換排序數據視圖,以類型的DataTable

DataView dvAccount = new DataView(dtAccount) 
dvAccount.Sort = "FullName desc"; 

的全名是我的查詢後,我的數據集,生成的場基礎上名字,中等,最後等。這意味着不幸的是,通過SQL查詢進行排序不是一種選擇。

首先,我試圖讓這樣的表格:

dtAccount = dvAccount.Table() 

但是,這給我的數據視圖是基於原來的表。因此,在線閱讀後,我發現我應該使用的DataView.ToTable()功能,而不是DataView.Table()功能:

dtAccount = dvAccount.ToTable() as dsAccount.AccountDataTable; // returns null 
dtAccount = ((dsAccount.AccountDataTable) dvAccount.ToTable()); // gives Convertion to Typed Datatable Error 

現在我得到我的賬戶表是強類型的問題。所以在網上搜索告訴我,我可以用DataTable.Merge()函數或DataTable.ImportRow()爲每一行,但這些被告知是一個非常沉重的程序,因爲每行檢查類型。這種情況的最佳實踐解決方案是什麼?

+0

爲什麼不從DataSet中刪除DataTable,然後將排序後的DataTable添加到DataSet中。 –

+0

嗨Nikhil!感謝您的快速回復。你能提供一個例子或更詳細的解釋給你的小費嗎?我使用Asp.Net的數據集層和業務層(多層設置),其中後者是我想做我的分類的地方,最好是因爲我重複使用我的數據集與多個位置上的查詢 – Jeroen

回答

0

我剛剛有同樣的問題。我使用這種解決方案。

 dtAccount = New dsAccount.AccountDataTable; 
     dtAccount.Merge(dvAccount.ToTable()); 

這對我來說很好。 告訴我,如果你有更好的一個。