vs2005/vs2008 데이터 세트 디자이너,자가 생성 된 안내 열이있는 테이블에 행을 삽입

StackOverflow https://stackoverflow.com/questions/806590

문제

vs2005/vs2008 데이터 세트 디자이너로 생성 된 강력하게 입력 한 데이터 가능이 있습니다.

테이블에는 SQL Server에 의해 채워진 Guid 인 기본 키 열이 있습니다. 문제는 내 데이터 가능에 행 (또는 여러 행)을 추가하고 dataadapter.update 메소드 (데이터 가능). 언제 dataadapter.update 기본 키 열에 NULL을 삽입 할 수 없다는 SQL 예외를 가져옵니다.

디자이너에게 이것이자가 생성 열이며 새 행에 대한 값을 제공하고 싶지 않다고 어떻게 알 수 있습니까? SQL에 의해 생성 된 값을 원합니다.

여기에 뭔가 빠진 것인가, 아니면 데이터 세트 디자이너의 제한입니까?

나는 LINQ에서 SQL을 사용하여 이것을 어떻게 달성하는지 알고 있지만 불행한 것은이 프로젝트에 대한 내 처분에 그것을 가지고 있지 않습니다.

도움이 되었습니까?

해결책

아마도 이것들 중 하나 :

  • 앱의 데이터 세트에 열이 필요하지 않은 경우 제거하십시오.
  • 열을 원하지만 값을주지 않으려면 DBNULL을 허용하도록 변경하십시오.
  • 항상 구속 조건 시행 (아마도 나쁜 아이디어)을 끌 수 있습니다 : DataSet.EnforCeconstraints = false
  • DB로 전송되지 않는 대리 키로 열을 채울 수 있습니다.

처음 두 가지 옵션의 경우 디자이너가 구조를 데이터베이스와 동기화하도록 편리하게 원하는 경우 "// hack :"댓글 옆에 열을 제거하거나 프로그래밍 방식으로 널을 허용 할 수 있습니다.

다른 팁

SQL Server 테이블 정의에서 Default NewId ()를 사용하고 있으므로 문제는 데이터 세트 디자이너 가이 열을 자동 생성으로 보지 못하는 것일 수 있습니다.

애플리케이션 코드에서 GUID를 생성하면 솔루션이 될 수 있습니까? 그렇지 않은 경우 데이터 세트에서 기본값을 설정할 수 있지만이 기본값이 SQL Server 테이블에 삽입되지 않도록 DataAdapter 삽입/업데이트 문을 변경해야 할 수도 있습니다.

내가 알지 못하는 다른 솔루션도있을 수 있습니다 ...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top