2010-08-23 3 views
4

유형으로 캐스팅 할 수 없습니다. AvailDataTable 유형의 데이터 가능 AVT가 있습니다. 그러나 코드'system.data.datatable'유형의 객체를

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

:

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

가 유형의 객체 system.data.datatable '를 캐스팅 할 수 없습니다 메시지 "실패를 다음 코드는 AVT에서 새 데이터 테이블을 생성하기 위해 노력 유형 'AvailDataTable'. 처음 캐스팅 작동하지만 두 번째는하지 않습니다는? 감사합니다!

답변

2

DataView.Table 요, 당신에게 기본 소스의 DataTable을 반환하는 이유

누군가가 설명 할 수 이 경우 소스 테이블은 AvailDataTable 유형입니다. 반면 DefaultView.ToTable

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

현재 뷰의 행에 기초하여 DataTable의 새로운 인스턴스를 생성한다.

여기에 미묘한 차이가 있지만 ToTable 반환 당신에게 일반적인 DataTable 개체를하지 특정 DataTable의 유형

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

+0

감사합니다, 나는 그것을 받고 있어요 생각합니다. 이것은 원래의 진술이 잘못되었음을 의미합니까? 첫 번째 경우에는 '새로운'데이터 테이블을 얻지 못하고, 원래의 데이터 테이블을 참조하는 것입니까? 그리고 두 번째 캐스트는 작동하지 않습니다. 새 데이터 테이블을 만드는 데 사용되는 뷰에 원래 데이터 테이블과 동일한 열이 없기 때문입니다. – dsteele

+0

예 및 예. :) –

+0

만세! 진행되고 있습니다 .. 천천히 .. 고마워. – dsteele

관련 문제