【问题标题】:Table Property broken after C# Typed DataSet Copy()C# Typed DataSet Copy() 后表属性损坏
【发布时间】:2011-10-09 01:30:12
【问题描述】:

我有一个类型化的 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() 方法来保留对表的命名访问?

【问题讨论】:

    标签: c# .net dataset system.data


    【解决方案1】:

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

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

    dsMySecondDataSet = (MyDataSetType) dsMyFirstDataSet.Copy();
    

    【讨论】:

    • 伟大的思想都一样。恐怕我在此期间尝试过,但没有效果。
    猜你喜欢
    • 2011-10-01
    • 2011-01-28
    • 1970-01-01
    • 2019-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-30
    • 1970-01-01
    相关资源
    最近更新 更多