.NetのDataTable.Mergeで対象の列がないとエラーが発生する
.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もスキーマ合致する必要があるので、何故うまく行くのか不明で納得できませんが。。。