0

我有一个类型化的 DataSet,其中包含多个要复制的表,包括数据和架构。我可以像我原来的那样访问表格:

MyDataSetType dsMyFirstDataSet;
MyDataTableType dtTable1;
MyDataTableType dtTable2;

dtTable1 = dsMyFirstDataSet.MeaningfulTableName1;
dtTable2 = dsMyFirstDataSet.MeaningfulTableName2;

当我执行以下操作时,我不能再通过新版本中的名称访问表,但我可以通过 Tables 集合。

MyDataSetType dsMySecondDataSet; 
dsMySecondDataSet = dsMyFirstDataSet.Copy();

dtTable1 = dsMySecondDataSet.MeaningfulTableName1;  // null
dtTable2 = dsMySecondDataSet.MeaningfulTableName2;  // null

dtTable1 = dsMySecondDataSet.Tables[0];  // table not null/copied ok
dtTable2 = dsMySecondDataSet.Tables[1];  // table not null/copied ok

我目前正在像第二个示例一样通过索引访问它们,但我想知道为什么命名表链接已被切断?我是否必须编写自己的 Copy() 方法来保留对表的命名访问?

4

1 回答 1

0

我的猜测是您的调用Copy返回了一个非类型化的 DataSet(尽管我不确定为什么您不会收到编译器错误)。

尝试将您调用的行更改为Copy

dsMySecondDataSet = (MyDataSetType) dsMyFirstDataSet.Copy();
于 2011-07-20T04:40:39.813 回答