다음을 통해 공유


DataRow 삭제

DataRow 개체를 DataTable 개체에서 삭제하는 데 사용할 수 있는 두 가지 방법은 개체의 DataRowCollection 메서드와 Delete 개체의 메서드입니다. 메서드 RemoveDataRowCollection에서 DataRow를 삭제하는 반면, 메서드 Delete는 단지 삭제할 행을 표시만 합니다. 애플리케이션에서 AcceptChanges 메서드를 호출할 때 실제 제거가 발생합니다. 이를 사용하면 Delete를 통해 실제로 삭제하기 전에 삭제로 표시된 행을 프로그램을 통해 확인할 수 있습니다. 행이 삭제되도록 표시되면 해당 RowState 속성은 .로 Delete설정됩니다.

Delete 개체를 foreach 루프로 반복하는 동안 Remove 또는 DataRowCollection를 호출해서는 안 됩니다. Delete 컬렉션의 상태를 수정하거나 Remove 변경하지 않습니다.

관계형 데이터 원본과 함께 DataSetDataAdapter를 사용할 때, DataRowDelete 메서드를 사용하여 행을 제거합니다. Delete 메서드는 행을 DataSet 또는 DataTable에서 Deleted로 표시하지만 제거하지는 않습니다. 대신 DataAdapterDeleted로 표시된 행을 발견하면 DeleteCommand 메서드를 실행하여 데이터 원본에서 행을 삭제합니다. 그런 다음 AcceptChanges 메서드를 사용하여 행을 영구적으로 제거할 수 있습니다. Remove를 사용하여 행을 삭제하면 행이 테이블에서 완전히 제거되지만 DataAdapter는 데이터 원본에서 행을 삭제하지 않습니다.

DataRowCollectionRemove 메서드는 다음 예제와 같이 DataRow를 인수로 사용하여 컬렉션에서 제거합니다.

workTable.Rows.Remove(workRow)  
workTable.Rows.Remove(workRow);  

반면, 다음 예제에서는 DataRow에서 Delete 메서드를 호출하여 RowStateDeleted로 변경하는 방법을 보여 줍니다.

workRow.Delete  
workRow.Delete();  

행이 삭제로 표시되어 있고 DataTable 개체의 AcceptChanges 메서드를 호출하면 행이 DataTable에서 제거됩니다. 반면 RejectChanges를 호출하면 행의 RowStateDeleted로 표시되기 전의 행으로 되돌아갑니다.

비고

DataRowRowStateAdded 상태여서 테이블에 방금 추가된 후 Deleted로 표시되면 테이블에서 제거됩니다.

참고하십시오