Это можно сделать, и это не так сложно. Вкратце, вот что вы хотите сделать:
- для каждого элемента, который вы вставляете в базу данных, возвращает идентификатор вновь созданного элемента
- храните идентификатор сохраненного элемента в ваших методах базы данных в удобном месте - сессия - хорошее место.
- на следующей странице вы можете получить доступ к переменной Session, чтобы получить сохраненные вами идентификаторы.
(В настоящее время редактирование сообщения для добавления кода)
Лучший и самый безопасный способ вернуть вновь вставленные идентификаторы - это транзакции (плюс, если есть проблема со вставкой, вы можете откатить ее). Вот как будет выглядеть транзакция, когда мы делаем вставку и возвращаем идентификатор:
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 )