将多个ID从第一个aspx页面存储到下一个aspx页面
我有我的第一个aspx页面,其中包含用户填充的数据。它以文本框的格式显示,并且在所有用户点击提交并且所有数据都进入数据库。在数据库中,每条记录都有一个ID字段。现在,当用户点击提交并进入下一页时,我想从他刚刚插入的数据库中获得ID(可能为1到1000+),并在第二页上提供它们。我怎么能把所有的ID从第1页到第2页?我可以在会话中做到吗?或者是其他东西。请放一些示例代码,这样我可以更好地理解。将多个ID从第一个aspx页面存储到下一个aspx页面
它可以完成,它并不难。概括地说,这里是你会想做什么:
- 你插入到数据库中的每个项目,在你的数据库的方法某处容易返回新建项目的ID
- 店所保存的物品的ID来访问 - 会议是一个好地方。
- 在下一页上,您可以访问您的Session变量来检索您保存的ID。
(目前后期编辑中添加代码)
返回新插入的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)
我得到这部分。所以当我回来@newitemid,然后我会话(“itemid”)= @newitemid。不会覆盖每个插页上的下一个newitemid?我怎么能把他们在会议中说1,2,3,4,5 ......或者我理解错了? – poller 2010-06-17 21:02:42
您可以在会话中存储_objects_,比如数组,hashmaps等。这对您有帮助吗? – 2010-06-17 21:04:46
首先建立某种形式的sessionId和存储它在会话对象中。
Session["SessionId"] = Guid.NewGuid().ToString();
当存储的ID,在分贝,还用它记录的SessionID(上图),这样就可以知道该会话的所有记录。
然后在接下来的页面,只是做一个查询来获取与该SessionID的
如果它坚持到数据库中的所有的ID,你为什么必须通过网页来传递呢?在第2页再次获取数据。 – RPM1984 2010-12-21 08:54:19