質問: .Net 4.0(vb.net)で開発しています。 2つのDataTableを結合するために、DataTable.Mergeメソッドを利用しようと考えています。 ``` dataTableA.Merge(dataTableB, false, MissingSchemaAction.Error) ``` としたときに、 > > ターゲット テーブル B に列 XXX の定義が見つかりません。 > > > とエラーが発生しています。 単純なエラーに見えますが、dataTableAにもdataTableBにも列:XXXは存在しています。 ``` dataTableA.WriteXmlSchema("schemaA.xml") dataTableB.WriteXmlSchema("schemaB.xml") ``` として出力したスキーマのXMLを比較しても一致しています。 エラーメッセージのテーブル名(B)とDataTable.TableNameが一致しているのはdataTableBです。 ``` dataTableB.Columns.Contains("XXX") ``` は `True` を返します。 他になにか見落としている点がありそうですか? --- 類似のコーディングをしている箇所が少なかったのでループでImportRowして対応することにしました。 ImportRowもスキーマ合致する必要があるので、何故うまく行くのか不明で納得できませんが。。。
回答: var result = dataTableA.AsEnumerable().Union(dataTableB.AsEnumerable()).CopyToDataTable(); すみません、日本語があまり上手ではありません。