2011-07-20 14 views
0

データ型とスキーマを合わせてコピーしたい複数のテーブルを持つ型指定されたDataSetがあります。私は私のオリジナルでそうのようなテーブルにアクセスすることはできません。C#Typed DataSet Copy()の後にテーブルプロパティが破損しました。

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()メソッドを記述する必要がありますか?

答えて

0

私は、Copyへの呼び出しが、型指定されていないDataSetを返すことを推測しています(ただし、コンパイラエラーが発生しない理由はわかりません)。

dsMySecondDataSet = (MyDataSetType) dsMyFirstDataSet.Copy(); 
+0

偉大な心は似て考えると、すべてのこと:

は、あなたがこれにCopyを呼び出す行を変更してみてください。私は暫定的にそれを試してみましたが、それは効果がありませんでした。 – Fellmeister

関連する問題