2010-02-02 1 views
0

행을 수정, 삽입 및 삭제 한 데이터 세트가 있습니다. 데이터 집합을 내 MiddleTier로 보내면 데이터베이스를 업데이트하는 서버로 데이터를 보냅니다. GetChanges를 사용하여 최대한 적은 수의 행을 전송합니다.업데이트 후 안정 데이터 세트 얻기

서버가 행을 올바르게 업데이트하고 삽입하고 삭제하며 업데이트 된 데이터 세트를 다시 전송 한 다음 로컬 데이터 세트와 병합합니다. 문제는 기본 키가 일치하지 않으면 중복 된 추가/수정 된 행을 얻게된다는 것입니다. 그래서 RejectChanges를 병합 한 후에 왼쪽의 모든 변경 사항을 제거하려고합니다 (중복 될 수 있음). 그런 다음 문제는 삭제 된 모든 행이 여전히 데이터 집합에 남아 있다는 것입니다. 병합은 삭제 된 행을 제거하지 않으므로이를 수행하려면 AcceptChanges를 호출해야합니다. 따라서 Accept와 RejectChanges를 모두 수행해야하지만 불가능합니다.

이렇게하는 좋은 방법이 있습니까? 이 문제를 가능한 한 최선의 방법으로 해결할 수있는 방법에 대한 제안이 있으십니까?

감사합니다.

답변

1

변경 사항을 중간 계층 데이터 세트로 보내기 전에 데이터 세트에서 AcceptChanges를 수행하는 경우 자체 (예 : 업데이트, 제거, 추가)를 처리해야합니다. 이렇게하면 데이터 세트가 이미 업데이트되어 있으므로 변경 사항을 병합 할 필요가 없습니다.

서버에 대한 변경이 실패 할 경우 어떻게해야하는지 고려해야 할 수도 있습니다.

체크 아웃 MSDN 문서 DataSet:AcceptChanges Method

+0

문제는 내가 어떤 병합에 대해 AcceptChanges를한다면, 나는 내 로컬 데이터 세트 (데이터베이스에 할당 된 키와 물건)에서 업데이트 된 데이터를 얻을 수 없다는 것입니다. –