2010-08-23 33 views
4

我有一個類型爲AvailDataTable的數據表AVT。下面的代碼工作,以創建AVT一個新的DataTable:無法將類型爲'system.data.datatable'的對象轉換爲

AvailDataTable AVT1 = (AvailDataTable) AVT.DefaultView.Table; 

但是,代碼:

AvailDataTable AVT1 = (AvailDataTable) AVT.DefaultView.ToTable(); 

失敗的消息「無法投類型的對象system.data.datatable「來類型「AvailDataTable」。

有人能解釋爲什麼第一投工作,但第二個不?謝謝!

回答

2

DataView.Table將返回底層源數據表,喲你的情況這個源表是AvailDataTable類型。

http://msdn.microsoft.com/en-us/library/system.data.dataview.table.aspx

而DefaultView.ToTable構建了基於當前視圖行的DataTable的新實例。

細微的差別在這裏,但ToTable回報你一個通用的DataTable對象不是特定的DataTable類型

http://msdn.microsoft.com/en-us/library/a8ycds2f.aspx

+0

謝謝,我想我得到它。這是否意味着我的原始聲明是錯誤的,在第一種情況下,我沒有獲得「新」數據表,只是對原始數據表的引用?而第二次強制轉換不起作用,因爲用於創建新數據表的View可能與原始數據表沒有相同的列? – dsteele 2010-08-23 17:18:53

+0

是和是。 :) – 2010-08-23 17:30:10

+0

Hooray!正在取得進展..很慢..謝謝。 – dsteele 2010-08-23 18:33:40

相關問題