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

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

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

但是,代码:

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

失败并显示消息“无法将类型为’system.data.datatable’的对象强制转换为”availDataTable’.

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

最佳答案 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

点赞