The purpose is to move a row into a DataTable to the first position, so once I get the row I remove it and then I insert it into the first position.
DataRow[] dr = DataSet1.Tables[0].Select("field1 = HELLO");
DataSet2.Tables[0].Rows.Remove(dr[0]); // Here dr[0] is removed. Why?
DataSet2.Tables[0].Rows.InsertAt(dr[0], 0); // Now a null value is inserted
the second line remove both the value into de DataTable and the dr[0] passed as parameter so I cannot insert then at the first position.
This is because dr[0] is just a reference, you will need to clone it and then remove it.