我的第一个aspx页面包含用户填写的数据。它采用文本框格式,最后用户点击提交,所有数据都在数据库中。在数据库中,每条记录都有一个ID字段。现在,当用户点击提交并转到下一页时,我想从他刚刚插入的数据库中获取ID(可能是1到1000+),并在第二页上提供它们。如何从第1页到第2页获取所有ID?我可以在会议中这样做吗?或者是其他东西。请提供一些示例代码,以便我能更好地理解。
答案 0 :(得分:0)
可以做到,而且不是那么难。简而言之,这就是你想要做的事情:
(目前正在编辑帖子以添加代码)
返回新插入的ID的最佳和最安全的方法是通过事务处理(另外,如果插入有问题,您可以将其回滚)。以下是我们执行插入并返回ID的事务的外观:
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
然后,您可以将新ID存储在会话变量
中 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 )
答案 1 :(得分:0)
首先创建某种sessionId并将其存储在会话对象中。
Session["SessionId"] = Guid.NewGuid().ToString();
当存储id时,在db中,还用它记录SessionId(上面),这样你就会知道该会话的所有记录。
然后在下一页中,只需进行查询即可获得与该SessionId相关的所有ID