2010-06-17 3 views
0

사용자가 채우는 데이터가있는 첫 번째 aspx 페이지가 있습니다. 텍스트 상자의 형식이며 모든 사용자가 제출을 클릭하고 모든 데이터가 들어갑니다. 데이터베이스 데이터베이스에서 각 레코드는 ID 필드를 가져옵니다. 이제 사용자가 제출을 클릭하고 다음 페이지로 이동하면 방금 삽입 한 DB의 ID (1에서 1000까지)를 원하고 두 번째 페이지에서 사용할 수있게합니다. 1 페이지에서 2 페이지로 모든 이드를 어떻게 데려 갈 수 있습니까? 세션에서 할 수 있을까요? 또는 다른 것. 좀 더 잘 이해할 수 있도록 몇 가지 샘플 코드를 넣어주세요.첫 번째 aspx 페이지에서 여러 개의 id를 저장합니다.

+0

그것이 DB에 지속 않다면 관련된 모든 아이디의를 얻을 수있는 쿼리를합니까? 2 페이지에서 다시 데이터를 얻으십시오. – RPM1984

답변

0

그렇게 할 수 있으며 그리 어렵지 않습니다. 간단히 말해서, 여기 당신이 원하는 것 무엇 : 데이터베이스에 삽입 각 항목에 대한

  • 액세스 데이터베이스 방법에서 새로 만든 항목의 ID 쉬운 곳을
  • 저장소에 저장된 항목의 ID를 반환 - 세션은 좋은 장소입니다.
  • 다음 페이지에서 세션 변수에 액세스하여 저장된 ID를 검색 할 수 있습니다.

새로 ID의 삽입 반환하는 가장 안전한 방법은 거래를 통해입니다 (현재 코드를 추가 게시물을 편집) (삽입에 문제가있는 경우, 플러스, 당신은 그것을 롤백 할 수 있습니다). sessionId가 어떤 종류의를 생성하고 저장

ALTER PROCEDURE [dbo].[storeFrontItems] 
    @itemName NVARCHAR(255),      
    @itemDescription NVARCHAR(255), 

    @newItemID INT OUTPUT 
AS 

    BEGIN TRANSACTION 
    INSERT INTO storeFrontItems (Name, Description) VALUES (@itemName, @itemDescription) 
    SET @error = @@ERROR 
    IF @error <> 0 
    BEGIN 
     ROLLBACK TRANSACTION 
     RETURN @error 
    END 
    ELSE 
    BEGIN 
     SELECT @newItemID = @@IDENTITY 
    END 
    COMMIT TRANSACTION 


    RETURN 

이 그럼 당신은 세션 변수

Dim newlyCreatedItemID int 
    newlyCreatedItemID = databaseInsertNewItem /* ... */ 

    /* to store it in a session variable */ 
    Session("NewItemID") = newlyCreatedItemID 

    /* to retrieve it from a session variable */ 
    newlyCreatedItemID = i = CType(Session("NewItemID"), newlyCreatedItemID) 
+0

이 부분을 얻을 수 있습니다. 그래서 내가 @newitemid를 가지고 돌아 왔을 때, 나는 Session ("itemid") = @newitemid를한다. 각 insert에 다음 newitemid를 덮어 쓰지 않겠습니까? 어떻게 1,2,3,4,5라고 말하면서 세션에 넣을 수 있습니까? 아니면 잘못 이해하고 있습니까? – poller

+0

_objects_도 세션에 저장할 수 있습니다 (배열, 해시 맵 등). 도움이 될까요? –

0

처음에 새 ID를 저장할 수 있습니다 : 여기에 트랜잭션 ID를 우리는 삽입 할 위치를보고 반환 방법 세션 개체에. 해당 세션에 대한 모든 기록을 알 수 있도록

Session["SessionId"] = Guid.NewGuid().ToString(); 

도 함께 (위) 세션 ID를 기록, DB에, 아이디의의를 저장합니다.

그런 다음 페이지에서 바로 왜 페이지를 통해 통과해야합니까, 그 세션 ID

관련 문제