2011-06-27 95 views
0

我有該種類的表follwong數據庫結構商店itemList中在會話

catgegory (CatId,CatType,CatName) 
Product(ProductId,ProductName,CatId) 
Service(ServiceId,ServiceName,CarId) 

(CatType是「P」或「S」任一產品或服務的商店)

IM使用排序列表來存儲產品或服務的會話

我的問題即時使用productId作爲關鍵在sortedList但是可能會有情況,其中ServiceId和productId相同我想得到一些adivce我如何可以重新設計或改進此代碼謝謝

代碼

Private Sub AddToCart(ByVal CartItem As CartItem) 

Dim Cart As SortedList = GetCart() 
Dim k As Integer = objTempCart.ProductId 
If Cart.ContainsKey(k) Then 
      CartItem = CType(Cart(k), CartItem) 
      CartItem.objProduct.OrderQty = CartItem.objProduct.OrderQty + 1 
      CartItem.objProduct.Total = CartItem.objProduct.OrderQty * CartItem.objProduct.ProductPrice 
     Else 
      Cart.Add(k, CartItem) 
      CartItem.objProduct.OrderQty = 1 
      CartItem.objProduct.Total = CartItem.objProduct.OrderQty * CartItem.objProduct.ProductPrice 

    End Sub 

    Private Function GetCart() As SortedList 

     If Session("Cart") Is Nothing Then 
      Session.Add("Cart", New SortedList) 
     End If 
     Return CType(Session("Cart"), SortedList) 
    End Function 
+0

您可以連接'CatType'和'ID'來獲取唯一的字符串作爲SortedList(f.e。「」P4711「和」S12345「)的鍵。 –

+0

感謝您的建議 – Milas

回答

0

你可以Concat的的CatTypeID得到一個唯一的字符串作爲SortedList指標(如關鍵"P4711""S12345")。

但通常我會使用兩個SortedList,每個類別一個。這使得代碼不易出錯並且更清晰。