Click here to Skip to main content
13,138,857 members (55,418 online)
Rate this:
Please Sign up or sign in to vote.
Hi all,
I'm in the middle of building a small online shop using ASP.NET and VB.Net.
I have 3 pages: Home, Product Details and Shopping Cart.
The Home Page displays all products in a Grid View. When a user clicks on a product, he/she gets redirected to the Product Details page. In this page, if the user clicks on the Buy button, two things happen here: 1. an insert statement takes the Product ID and the GUID to the database 2. the user gets redirected to the Shopping Cart page to view his/her items.

The problem is that when I go check the Basket table for the current session, the GUID is different in each row. I suppose to see something like this in the Basket table:

1 ................... 6719c79a-2952-4615-8441-ecc06d7ecc77
2 ................... 6719c79a-2952-4615-8441-ecc06d7ecc77
3 ................... 6719c79a-2952-4615-8441-ecc06d7ecc77

The code behind might explain more, here is what I have written in the Product Details page:

Page Load Event:
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
      If Not IsPostBack Then
          Session("guid") = Guid.NewGuid().ToString()
      End If
End Sub

Button Click Event
Protected Sub Button3_Click(sender As Object, e As System.EventArgs)
        Dim insert As New DataSet1TableAdapters.BasketTableAdapter
        insert.InsertQuery(Me.Request.QueryString("ProductID"), Me.Session("guid"))
End Sub

My question is: how can I retain the same GUID for a user until he/she checkout or leave the website?

Please help me sorting this issue.
Finally, sorry for the weak language.
Posted 27-Mar-13 13:54pm
AspDotNetDev 27-Mar-13 20:57pm
FYI, I deleted the answer you posted, as it should have been posted as a comment. Also, glad I could be of assistance :-)
Rate this: bad
Please Sign up or sign in to vote.

Solution 1

I'm still not too clear on how the pieces fit together, but try this:
If Session("guid") Is Nothing Then
    Session("guid") = Guid.NewGuid().ToString()
End If

That way, the GUID will only be placed in session if it doesn't already exist.
Rate this: bad
Please Sign up or sign in to vote.

Solution 3

As everything is in just one site and there are no independent partied creating IDs, you don't need GUID at all. It could be just something like UInt32 or UInt64 ID. Your server is a central point issuing the IDs, so you can guarantee perfect uniqueness. Using GUID is totally pointless.


This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Top Experts
Last 24hrsThis month

Advertise | Privacy |
Web04 | 2.8.170915.1 | Last Updated 27 Mar 2013
Copyright © CodeProject, 1999-2017
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100