요약 : 여러 DataRelations를 통해 연결된 여러 DataTable이 포함 된 DataSet이 있습니다. 이 DataSet에 대한 데이터 바인딩을 사용하여 양식을 만들었으며 매우 복잡하다고 말할 수 있습니다.Databinding, datarelations가있는 데이터 세트 및 DB의 새로 고침 된 단일 DataTable
시나리오는 다음과 같습니다. 양식의 주된 목적은 새 레코드를 삽입하는 것입니다. 그것을 삽입하기 위해서는 다양한 부모 - 자식 관계를 설정해야합니다. 그것은 모두 데이터 바인딩과 함께 잘 작동하지만 문제는 다음에 있습니다 : 사용자가 부모 - 자식 관계 중 하나에 대해 새로운 "자식"을 입력하려고 할 때 새로운 양식이 열리고 yada yada yada가 입력됩니다. 공장. 문제는 - 부모 - 자식 콤보 상자에 표시하려면 원래 데이터 형식으로 새 데이터를 다시 가져와야합니다.
내가 아는 한 가지 방법은 전체 양식을 새로 고치는 것입니다. 하지만 그 데이터가 포함 된 DataTable을 새로 고치는 솔루션을 찾고 있습니다. 나는 DB에서 신선한 데이터를 새로운 DataTable을 점점하고 데이터 세트에서 DataTable을 함께 병합 시도했지만 작동하지 않습니다 : 예외가 발생한다 "자식 행이 여러 부모가"등가
// basically just a Select * using dataadapter,
// nothing programmatically added
DataTable table = tableModule.GetPlainTable();
existingDataSet.Tables["tableName"].Merge(table);
예를 들어 제가하려는 것은 Customer 콤보 박스가있는 Order 양식을 갖는 것입니다. 콤보 상자의 오른쪽에는 새로운 "고객 추가"양식을 여는 "추가"버튼이 있습니다. DB (Customers) 테이블은 "Cities"테이블과 관련이 있고 그 데이터는 Orders 폼의 databindning과 연결되어 있습니다.
EDIT : 내가 생각할 수있는 한 가지 해결책은 새 DataTable에서 "수동으로"반복하고 DataSet 내부의 원래 DataTable에없는 모든 행을 찾는 것입니다. 그러나이 중 하나라도 작동하는지 확신 할 수 없습니다 ...
/제안/설명/올바른 방향으로 밀어 크게 인정 될 것입니다 :)