2010-01-18 4 views
1

데이터베이스의 테이블에 데이터를 입력하기위한 양식을 만들었으므로 이제 해당 데이터를 INSERT하고 해당 ID의 자판 번호를 다시 가져 오려고합니다. 방금 추가 된 레코드. 나는 잘 작동하는 INSERT 부분을 가지고 있는데, "SELECT SCOPE_IDENTITY();를 붙였다." 그 끝에,하지만 지금은 반환 된 번호를 검색해야합니다.ASP.NET 컨트롤에서 scope_identity() 사용

현재이 모든 작업은 SqlDataSource ("INSERT"문을 함께 사용하고 페이지의 양식에서 데이터를 가져 오는 코드 비헤이비어 파일의 일부 C#에 의해 실행 됨)를 통해 수행됩니다.

숫자를 가져 와서 변수에 넣는 빠른 방법이 있습니까?

답변

2

에서

protected void SqlDataSource1_Inserted(object sender, SqlDataSourceStatusEventArgs e) 
    { 
     //Read the value of the @Identity OUTPUT parameter 
     string sID = e.Command.Parameters["@Identity"].Value.ToString(); 

     //Display new ID 
     Label1.Text = sID; 
    } 

했다. 해결 방법은 출력 매개 변수를 SqlataSource의 삽입 매개 변수 목록에 전달한 다음 해당 변수의 SCOPE_IDENTITY에서 반환 한 값을 설정하는 것입니다. 변수의 값은 Inserted 이벤트에서 검색 할 수 있습니다. 이다

,

  1. 선언적
  2. 바꾸기 당신의 SqlDataSource의 매개 변수 삽입에 신원라는 출력 매개 변수를 추가 "SCOPE_IDENTITY()를 선택하고," 삽입 문 끝에 "SET @Identity = SCOPE_IDENTITY();"가 표시됩니다. 다음
  3. 가 이제 @Identity 파라미터의 값이 "삽입"이벤트를 검색 할 수

    보호 공극 SqlDataSource1_Inserted (객체 송신자 SqlDataSourceStatusEventArgs E) {

    //Read the value of the @Identity OUTPUT parameter 
    int lastID = e.Command.Parameters["@Identity"].Value; 
    ... 
    

    }

+0

감사합니다. 효과가있는 것 같습니다! – Chris

관련 문제