无法将类型为“system.data.datatable”的对象强制转换为类型

时间:2010-08-23 16:30:07

标签: c# asp.net

我有一个AvailDataTable类型的数据表AVT。以下代码用于从AVT创建新数据表:

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

然而,代码:

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

失败并显示消息“无法将类型为'system.data.datatable'的对象转换为''类型'AvailDataTable'。

有人可以解释为什么第一个演员会有效,但第二个演员没有?谢谢!

1 个答案:

答案 0 :(得分:2)

DataView.Table返回基础源DataTable,在这种情况下,此源表的类型为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