2012-09-12 3 views
2

캐시 된 데이터 관리자이 데이터베이스에서 데이터를 가져 와서 그리드로 반환합니다. 데이터 관리자가 일부 데이터를 가져와야 할 때마다 다른 메서드로 구성된 데이터 집합을 지우는 메서드가 있지만 _dataset.rejectChanges() 메서드도 사용합니다.dataSet.RejectChanges() throws exception

문제점 : _dataSet.rejectChanges() 메소드가 발생 "RowNotInTableException :..이 행은 테이블로부터 삭제 된 임의의 데이터가없는 BeginEdit()이 연속적으로 새로운 데이터를 생성 할 수 있도록" 또한이 예외는 매번 throw되지 않으며 대신 임의 번호입니다. (다른 사용자가 캐시 된 데이터 관리자와 상호 작용하여 이상한 문제를 일으키는 것으로 의심됩니다.)
다른 사용자가이 문제 (HOW?)를 일으킬 가능성이 있습니까? 모든 수정 사항?

+0

나타나서 당신이 당신의 답변을 얻을 수있는이 링크를 확인하십시오 http://stackoverflow.com/questions/9768066/datatable-throwing-exception-on-rejectchanges – Xavier

답변

0

cached data manager은 ASP.NET 응용 프로그램에서 빨간색 플래그입니다.

인스턴스 인스턴스 메서드는 스레드로부터 안전하지 않으므로 여러 스레드가 캐시 된 DataSet을 업데이트하면 모든 베팅이 해제되고 임의의 "heisenbugs"가 예상 될 수 있습니다.

잠금을 사용하거나 업데이트 가능한 DataSet을 캐시하는 디자인을 더 잘 고려하십시오.

관련 문제