Il semble que vous ne souhaitiez pas conserver l'intégralité de DataTable en tant que copie, car vous n'avez besoin que de quelques lignes, non? Si vous avez un critère que vous pouvez spécifier avec une sélection sur la table, vous pouvez copier uniquement ces lignes dans un tableau de sauvegarde supplémentaire de DataRow comme
DataRow[] rows = sourceTable.Select("searchColumn = value");
La fonction .Select () a plusieurs options et celle-ci peut par exemple être lue comme un SQL
SELECT * FROM sourceTable WHERE searchColumn = value;
Ensuite, vous pouvez importer les lignes souhaitées comme décrit ci-dessus.
targetTable.ImportRows(rows[n])
... pour tout n valide que vous aimez, mais les colonnes doivent être les mêmes dans chaque table.
Certaines choses que vous devez savoir sur ImportRow sont qu'il y aura des erreurs lors de l'exécution lors de l'utilisation de clés primaires!
Tout d'abord, je voulais vérifier s'il existait déjà une ligne qui a également échoué en raison d'une clé primaire manquante, mais la vérification a toujours échoué. En fin de compte, j'ai décidé d'effacer complètement les lignes existantes et d'importer à nouveau les lignes que je voulais.
Le deuxième problème a aidé à comprendre ce qui se passe. La façon dont j'utilise la fonction d'importation est de dupliquer des lignes avec une entrée échangée dans une colonne. J'ai réalisé que cela changeait toujours et que c'était toujours une référence à la ligne dans le tableau. J'ai d'abord dû importer l'original, puis modifier l'entrée que je voulais.
La référence explique également les erreurs de clé primaire qui sont apparues lorsque j'ai essayé d'importer la ligne pour la première fois car elle était vraiment doublée.