내 응용 프로그램에서 DataTable을 수동으로 채우는 방법으로 SqlBulkCopy를 사용하여 DB 테이블에 새 행을 삽입하려고합니다.SqlBulkCopy 복합 기본 키가있는 테이블에
이 테이블은의 3 개의 열로 구성된 복합 기본 키가있는 테이블을 제외하고 모든 테이블에 대해 정상적으로 작동합니다.
Violation of PRIMARY KEY constraint 'PK_MYCOMPOSITEKEY'. Cannot insert duplicate key in object 'dbo.MyTable'.
The statement has been terminated.
이도 가능 :이 테이블에 아무것도 SqlBulkCopy의하려고 할 때마다, 나는 다음과 같은 오류가 발생합니다? 나는 다음 내 DataTable을의 기본 키를 설정하는 시도
:
dt.PrimaryKey = new[] {dt.Columns["PKcolumn1"], dt.Columns["PKcolumn2"], dt.Columns["PKcolumn3"]};
그러나 다시, 행운.
그건 내가 생각하기에 너무. 그러나 필자는 ** ** 데이터베이스 테이블에 아직없는 값의 단일 행에 삽입을 제한했습니다. – kamens
데이터베이스는 데이터베이스가 그것이 무엇이라고 생각합니까? – Mark
귀하와 Majkara가 정확합니다. 나는 Linq-to-SQL을 사용하고 있는데, 외래 키 종속성이 내 외부 경로를 SqlBulkCopy보다 먼저 삽입 한 DB.SubmitChanges() 중에 걸려왔다. 비록 명시 적으로 행을 추가하지 않았지만 그들 자신. – kamens