0

시작 참고 사항 : 나는 우리에게 전달 된 버그를 수정하고 해결하려는 기존의 응용 프로그램을 통해 갈 것입니다.DataGridView System.Data.ConstraintException on row 입력

하나의 특정 DataGridView에 오류가 발생했습니다. ID에 대한 고유 제한 조건 예외를 제공합니다. 이상한 점은 테이블에 새 항목을 추가 할 때이 오류가 발생하지 않는다는 것입니다. 행을 선택하려고 할 때 나타납니다 (모든 행, 새로 추가 된 항목 일 필요는 없습니다). DataGridView. 이 테이블에 항목을 추가하면 순차적으로 ID가 증가하고 디버깅에서 ID가 올바르게 증가하는 것처럼 보이므로이 오류를받는 이유가 확실하지 않습니다. 저는 Visual Studio를 처음 사용하기 때문에 항목이 테이블에 추가 될 때와 반대되는 행을 선택할 때 왜이 오류가 발생하는지 혼란 스럽습니다.

DGV에서 행을 선택하면이 오류가 발생하는 행이나 발생하는 이유를 알 수 있습니까? 예외 처리 창에서 System.Data.ConstraintException을 표시하려고했는데 일반적으로 작동하지만 프로그램이 중단되지 않고 다른 예외와 함께 코드의 해당 줄로 나를 데려다줍니다. 대화 상자 창이 닫히고 프로그램이 정상적으로 계속됩니다.

내가주의해야 할 또 하나의 점은 아이템이 올바른 ID와 모든 것을 가지고 데이터베이스에 제대로 추가된다는 것입니다. 예외 대화 상자가 나타나지 않는 것 외에는 문제가되지 않는 것 같습니다. 대화 상자가 표시되는 것을 막기 위해 DataError 이벤트를 처리 할 수 ​​있다는 것을 알고 있습니다. 그러나이를 덮어 쓰는 대신이 문제를 해결하고 싶습니다.

예외의 스크린 샷은 여기에서 볼 수있다 : 나는 새로운 기록의 추가 한 후 DataGridView에있는 모든 행을 선택하면

http://i.imgur.com/VICFv.png

그리고 다시, 단지 명확하게하기 위해,이 예외는 팝업 . 또한 onRowEnter가 발생하도록 설정된 이벤트가 없습니다.

매우 도움이됩니다. 미리 감사드립니다.

답변

0

ID 시퀀스에 "핫스팟"이있을 수 있습니다. 따라서 ID가 올바르게 증가하면 행을 선택한 후에도 이미 존재하는 값으로 두 배가 될 수 있습니다.

+0

미안하지만 무슨 뜻인지 확실하지 않습니다. – AnthonyJK

+0

선택을 마친 후에는 yuor를 감염시킨 행 ID를 증가시켜 호출을해야합니다. – Tigran

+0

설명해 주셔서 감사합니다. – AnthonyJK