Senaryo gereği bir DataTable'dan başka bir DataTable'a DataRow eklemek istediğimizde :
{DataTable _sourceDataTable = _xDataSet.Tables[0];DataTable _destinationDataTable = new DataTable();foreach(DataRow row in _sourceDataTable.Rows){ if(row["col"] == "aranan_değer") { _destinationDataTable.Rows.Add(row); }}
gibi bir kod işimizi görür gibi düşünsek de " This row already belongs to another table " hatası ile karşılaşırız. Çözüm, önce DataTable nesnesinin Clone() metodu ile kopyalamak istediğimiz diğer DataTable'i oluşturmak arkasından ImportRow() metodu ile kaynak DataTable'dan hedef DataTable'a isteniler DataRow'u eklemek.
{DataTable _sourceDataTable = _xDataSet.Tables[0]; DataTable _destinationDataTable = new DataTable(); _destinationDataTable= _sourceDataTable.Clone(); foreach(DataRow row in _sourceDataTable.Rows){ if(row["col"] == "aranan_değer") { _destinationDataTable.ImportRow(row); }}
Remember Me