Parece que no desea mantener todo el DataTable como una copia, porque solo necesita algunas filas, ¿verdad? Si tiene una creteria que puede especificar con una selección en la tabla, puede copiar solo esas filas a una matriz de respaldo adicional de DataRow como
DataRow[] rows = sourceTable.Select("searchColumn = value");
La función .Select () tiene varias opciones y esta, por ejemplo, se puede leer como SQL
SELECT * FROM sourceTable WHERE searchColumn = value;
Luego, puede importar las filas que desee como se describe anteriormente.
targetTable.ImportRows(rows[n])
... para cualquier n válida que desee, pero las columnas deben ser las mismas en cada tabla.
¡Algunas cosas que debe saber sobre ImportRow es que habrá errores durante el tiempo de ejecución al usar claves primarias!
Primero quería verificar si ya existía una fila que también fallaba debido a que faltaba una clave primaria, pero luego la verificación siempre fallaba. Al final, decidí borrar las filas existentes por completo e importar las filas que quería nuevamente.
El segundo problema ayudó a comprender lo que sucede. La forma en que estoy usando la función de importación es duplicar filas con una entrada intercambiada en una columna. Me di cuenta de que siempre cambiaba y aún era una referencia a la fila de la matriz. Primero tuve que importar el original y luego cambiar la entrada que quería.
La referencia también explica los errores de clave principal que aparecieron cuando intenté importar la fila por primera vez, ya que realmente se duplicó.