DataRow 삭제
DataTable 개체에서 DataRow 개체를 삭제하는 데 사용할 수 있는 메서드에는 DataRowCollection 개체의 Remove 메서드와 DataRow 개체의 Delete 메서드가 있습니다. Remove 메서드는 DataRowCollection에서 DataRow를 삭제하는 반면, Delete 메서드는 삭제할 행을 표시만 합니다. 애플리케이션에서 AcceptChanges 메서드를 호출할 때 행이 실제로 삭제됩니다. Delete를 사용하면 행을 실제로 삭제하기 전에 삭제 표시된 행을 프로그래밍 방식으로 확인할 수 있습니다. 삭제 표시된 행의 RowState 속성은 Delete로 설정됩니다.
Delete 개체를 반복하는 동안에는 foreach 루프에서 Remove 또는 DataRowCollection가 호출되지 않아야 합니다. Delete 또는 Remove는 컬렉션의 상태를 수정하지 않습니다.
DataSet 또는 DataTable을 DataAdapter 및 관계형 데이터 원본과 함께 사용할 경우 DataRow의 Delete 메서드를 사용하여 행을 제거합니다. Delete 메서드는 DataSet 또는 DataTable에서 행을 Deleted로 표시만 하고 제거하지는 않습니다. 대신 DataAdapter가 Deleted로 표시된 행을 발견하면 DeleteCommand 메서드를 실행하여 데이터 원본에서 행을 삭제합니다. 그런 다음 AcceptChanges 메서드를 사용하여 행을 영구적으로 제거합니다. Remove를 사용하여 행을 삭제할 경우 해당 행은 테이블에서 완전히 제거되지만 DataAdapter는 데이터 원본에서 행을 삭제하지 않습니다.
다음 예와 같이 DataRowCollection의 Remove 메서드는 DataRow를 인수로 사용하여 컬렉션에서 제거합니다.
workTable.Rows.Remove(workRow)
workTable.Rows.Remove(workRow);
반면에, 다음 예에서는 DataRow에서 Delete 메서드를 호출하여 RowState를 Deleted로 변경하는 방법을 보여 줍니다.
workRow.Delete
workRow.Delete();
행이 삭제 표시된 상태에서 DataTable 개체의 AcceptChanges 메서드를 호출하면 해당 행은 DataTable에서 삭제됩니다. 반대로, RejectChanges를 호출하면 RowState가 Deleted로 표시되기 전의 상태로 돌아갑니다.
참고 항목
DataRow의 RowState가 Added인 경우, 이 행이 테이블에 추가되고 Deleted로 표시되어 테이블에서 삭제되는 것을 의미합니다.