2016-07-27 3 views
1

db 용 asp.net 응용 프로그램을 빌드합니다. TableAdapter를 사용합니다. 선택 쿼리 제약 primary key조인을 사용하는 TableAdapter 예외

SELECT 
    U.empID, 
    U.firstName, 
    U.lastName, 
    R.name AS Role 
FROM 
    USER_T AS U 
INNER JOIN USER_ROLES_T AS UR ON U.empID = UR.empID 
INNER JOIN ROLES_T AS R ON UR.roleID = R.typeID 

empId. 직원은 많은 역할 속성을 가지며 역할 이름이 지정됩니다.

UsersTableAdapter usersTableAdapter = new UsersTableAdapter(); 
DataBase.UsersDataTable users = usersTableAdapter.GetUsers(); 

나는 예외 다음 얻을 : 제가 DB에서 사용자 데이터에 대한 요청을 수행 할 때

Controllers.UI.Login.LoginController | System.Data.ConstraintException : 는

에 실패

enable 제약 조건. 하나 이상의 행에 (null이 아니거나 고유하거나 외부 키 제약 조건)을 위반하는 값이 있습니다. 내가 요청은이 때문에 primary key empId의 발생

28 Roman Ivanov Admin 
    28 Roman Ivanov Developer 

이해, 얻을 수있는 관리 프로그램 요청을 선택하는 방법이 문제가 해결 얻을 수있는 수행하는 경우

? 어댑터에서 기본 키를 제거하려면 어떻게합니까?

+0

가능한 [제약을 활성화하지 못했습니다. 하나 이상의 행에 null이 아니거나 고유하거나 외부 키 제약 조건을 위반하는 값이 있습니다.] (http://stackoverflow.com/questions/7026566/failed-to-enable-constraints-one-or-more-rows-contain- 값 - 위반 - null이 아닌) –

+0

의 합계로, 원하는 결과는 무엇입니까? –

답변

2

enter image description here

개방 UsersTableAdapter 거기에 위의 이미지와 마우스 오른쪽 버튼으로 클릭과 같은 비주얼 스튜디오에서 디자인과 키를 삭제는 완벽하게 작동, 저장합니다.

+0

하지만 기본 키는 고객의 데이터베이스에 있습니다. 제거를 수행 할 옵션이 없습니다. – flybox

+0

아니요, 데이터베이스의 기본 키를 삭제하지 않습니다. 어댑터에서만 삭제됩니다. –

+0

THX! 찾았어요! – flybox