我有一个AvailDataTable类型的数据表AVT。以下代码用于从AVT创建新数据表:
AvailDataTable AVT1 = (AvailDataTable) AVT.DefaultView.Table;
然而,代码:
AvailDataTable AVT1 = (AvailDataTable) AVT.DefaultView.ToTable();
失败并显示消息“无法将类型为'system.data.datatable'的对象转换为''类型'AvailDataTable'。
有人可以解释为什么第一个演员会有效,但第二个演员没有?谢谢!
答案 0 :(得分:2)
DataView.Table返回基础源DataTable,在这种情况下,此源表的类型为AvailDataTable。
http://msdn.microsoft.com/en-us/library/system.data.dataview.table.aspx
而DefaultView.ToTable基于当前视图中的行构造DataTable的新实例。
这里有细微差别,但ToTable会返回一个通用的DataTable对象,而不是您特定的DataTable类型