从DataTable继承并从DataTable复制数据

时间:2013-01-15 15:37:57

标签: c# datatable

我有以下课程:

public class ExcelStaticDataTable : DataTable
 {
        public ExcelStaticDataTable(string tableName): base(tableName)
        {

        }

 }

另一方面,我有一个返回DataTable的方法:

public DataTable Foo()
{
    return new DataTable();
}

让我们假设Foo返回一个填充的数据表,我希望使用方法Foo,填充我的其他类型:

ExcelStaticDataTable specialtable=new ExcelStaticDataTable("table1");
specialtable.DefaultView.Table=Foo();

OR

ExcelStaticDataTable specialtable=new ExcelStaticDataTable("table1");
specialtable=(ExcelStaticDataTable)Foo().Copy();

.Net中是否有用于使用DataTable实例填充我的派生类型?

1 个答案:

答案 0 :(得分:2)

不,您无法将此DataTable分配给继承DataTable的类的另一个实例。您需要将所有值复制到另一个表中。因此,您可以使用DataTable.Merge

specialtable.Merge(Foo()); // same as t1.Merge(t2, false, MissingSchemaAction.Add);