에서
감사합니다. 이 샘플에서 내가 메서드 호출을 더 쉽게 읽을 수 있도록하기 위해, C#을 4.0에서만 사용할 수 있습니다 named arguments을 사용했다고
dtStock.Merge(dtJob, preserveChanges: false, MissingSchemaAction.Ignore);
dtSpec.Merge(dtJob, preserveChanges: false, MissingSchemaAction.Ignore);
참고 :
다음은 예입니다.
var firstTable = new DataTable();
firstTable.Columns.Add(new DataColumn("FirstTableId", typeof(int)));
firstTable.Columns.Add(new DataColumn("FirstTableName", typeof(string)));
firstTable.Columns.Add(new DataColumn("SecondTableId", typeof(int)));
var secondTable = new DataTable();
secondTable.Columns.Add(new DataColumn("SecondTableId", typeof(int)));
secondTable.Columns.Add(new DataColumn("SecondTableName", typeof(string)));
var joinedTable = new DataTable();
joinedTable.Columns.Add(new DataColumn("FirstTableId", typeof(int)));
joinedTable.Columns.Add(new DataColumn("FirstTableName", typeof(string)));
joinedTable.Columns.Add(new DataColumn("SecondTableId", typeof(int)));
joinedTable.Columns.Add(new DataColumn("SecondTableName", typeof(string)));
joinedTable.Rows.Add(1, "FirstTableRow1", 1, "SecondTableRow1");
joinedTable.Rows.Add(2, "FirstTableRow2", 1, "SecondTableRow1");
joinedTable.Rows.Add(3, "FirstTableRow3", 2, "SecondTableRow2");
firstTable.Merge(joinedTable, false, MissingSchemaAction.Ignore);
secondTable.Merge(joinedTable, false, MissingSchemaAction.Ignore);
관련 리소스 : 여기
은보다 완벽한 예제 나는이 DataTable의 아이디어를 통조림, 심지어 (목록으로 갔다 결국
이 작업을 수행 할 수 없습니다 - 첫 번째 병합 줄에서 "대상 테이블 dtJoined 정의가 누락되었습니다."ItemType_ID가 있습니다. (원본 테이블의 열을 반복하고 조인 된 테이블의 열을 채 웁니다. 그들로부터) ... 또는 나는 그 오류를 오해하고 있습니까? (필자는 'MissingSchemaAction'을 변경하여 이전에 빈 테이블을 반환하는 오류를 볼 수있었습니다.) –
@Jez Clark 세 테이블의 스키마를 게시 할 수 있습니까? –