문제

ASP.NET의 유형화 된 데이터 세트를 사용하여 SQL Server 2000 DB에서 최신 삽입 ID를 검색 할 수 없습니다.

Tableadapter를 만들었고 "Refresh DataTable"및 "삽입, 업데이트 및 삭제 명령문"을 선택했습니다. 이것은 채우기 및 getData 메소드와 삽입, 업데이트, 선택 및 삭제를 자동 생성합니다.

이 스레드에서 가능한 모든 솔루션을 시도했습니다

http://forums.asp.net/t/990365.aspx

그러나 나는 여전히 실패하지만 항상 1 (= 영향을받는 행의 수)을 반환합니다. 자동 생성 인서트 커밋이 내 요구에 완벽하게 맞기 때문에 별도의 인서트 메소드를 만들고 싶지 않습니다.

위의 스레드에서 제안한 바와 같이, 나는 select scopy_identity () 또는 유사한 것을 추가하기 위해 insertcommand sql syntax를 업데이트하려고 시도했지만 returnValue 유형의 매개 변수를 추가하려고 시도했지만 영향을받는 행의 수만으로도 얻을 수 있습니다.

누구든지 다른 사람이 있습니까? 미리 감사드립니다! Stijn

도움이 되었습니까?

해결책

테이블 어댑터를 사용하여 삽입 한 후 증분 ID를 얻는 방법을 성공적으로 찾았습니다.

내 접근 방식은 약간 다릅니다. 저장 절차를 사용하여 인서트를 만들었으므로 삽입 명령은 모든 값을 가지지 만 ID는 ID를 반환했습니다. Commit Tran과 마지막 줄은 @id가 반환됩니다

그런 다음 InsertCommand의 테이블 어댑터 매개 변수를 검색하고 @returnValue를 테이블의 증분 ID 열로 설정하여 실행되면 자동으로 ID 필드에 리턴 값을 넣습니다.

이 도움을 바랍니다

다른 팁

나는 포기하기로 결정했다. 나는 이것에 더 이상 시간을 낭비 할 여유가 없다. 삽입문을 사용하여 삽입 ID를 hget으로 선택한 MAX (ID) 쿼리를 수행합니다.

누구든지 해결책이 있어야한다면 여기에서 읽어 드리겠습니다.

감사합니다 Stijn

업데이트/삽입 작업 후 데이터 테이블을 새로 고치려면 테이블의 테이블 자리에 알려야합니다. 이것이 당신이 그렇게 할 수있는 방법입니다.

  1. 속성을 엽니 다 Tableadapter-> 기본 선택 쿼리 -> 고급 옵션. 그리고 옵션을 확인하십시오 데이터 테이블을 새로 고치십시오. 지금 어댑터를 저장하십시오. 이제 테이블 어택터에서 업데이트를 호출 할 때 업데이트/삽입 작업 후에 데이터 테이블이 업데이트됩니다 [새로 고침 데이터베이스 테이블의 최신 값을 반영합니다. 기본 키 또는 Coloumn이 자동 증가로 설정된 경우 데이터 테이블에는 최근 업데이트 후 최신 값이 있습니다.

  2. 이제 업데이트를 tableadapterobj.update (ds.datatable)로 호출 할 수 있습니다.

  3. DataTable (ds.datatable) coloumns에서 최신 값을 읽고 업데이트/삽입 전에 자식 테이블에 각 값을 할당하십시오.. 이것은 당신이 원하는 방식으로 정확하게 작동합니다.

대체 텍스트 http://ruchitsurati.net/files/tds1.png

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