Görünüşe göre tüm DataTable'ı bir kopya olarak tutmak istemiyorsunuz, çünkü sadece bazı satırlara ihtiyacınız var, değil mi? Tabloda bir seçim ile belirtebileceğiniz bir creteria varsa, yalnızca bu satırları DataRow'un ekstra bir yedek dizisine kopyalayabilirsiniz
DataRow[] rows = sourceTable.Select("searchColumn = value");
.Select () işlevinin birkaç seçeneği vardır ve bu, örneğin bir SQL olarak okunabilir
SELECT * FROM sourceTable WHERE searchColumn = value;
Daha sonra yukarıda açıklandığı gibi istediğiniz satırları içe aktarabilirsiniz.
targetTable.ImportRows(rows[n])
... istediğiniz herhangi bir geçerli n için, ancak sütunların her tabloda aynı olması gerekir.
ImportRow hakkında bilmeniz gereken bazı şeyler, birincil anahtarları kullanırken çalışma sırasında hatalar olacağıdır!
Önce, eksik birincil anahtar nedeniyle başarısız olan bir satırın var olup olmadığını kontrol etmek istedim, ancak daha sonra kontrol her zaman başarısız oldu. Sonunda mevcut satırları tamamen temizlemeye ve istediğim satırları tekrar içe aktarmaya karar verdim.
İkinci sorun ne olduğunu anlamaya yardımcı oldu. İçe aktarma işlevini kullanma şeklim, satırları değiştirilmiş bir girişle bir sütunda çoğaltmaktır. Her zaman değiştiğini ve yine de dizideki satıra bir referans olduğunu fark ettim. Önce orijinali içe aktarmam ve sonra istediğim girişi değiştirmem gerekiyordu.
Referans ayrıca satırı gerçekten iki katına çıkardığı için ilk kez içe aktarmaya çalıştığımda ortaya çıkan birincil anahtar hatalarını da açıklıyor.