Как вставить товар в корзину в новой строке, если существует, но цвет и размер в Asp.net разные? - PullRequest
0 голосов
/ 24 мая 2011

У меня есть хранимая процедура, которая добавляет товар в корзину. Но если в корзине есть товар, и я выбираю тот же товар, но на этот раз я выбираю другой размер или цвет, я хочу добавить новую строку в корзину, а не обновлять существующую строку с идентификатором корзины. Вот ИП:

    ALTER PROCEDURE [dbo].[ShoppingCartAddItem]
(@CartId char(36),
 @ProductId int,
 @Attributes nvarchar(1000))
AS
If Exists(Select CartId From ShoppingCart
Where ProductId = @ProductId and CartId = @CartId AND Attributes = @Attributes)
Insert Into ShoppingCart (CartId, ProductId, Attributes, Quantity, DateAdded)
Values (@CartId, @ProductId, @Attributes, 1, GETDATE())
Else
If Exists(Select CartId from ShoppingCart Where ProductId = @ProductId And CartId = @CartId)
UPDATE ShoppingCart
Set Quantity = Quantity + 1
WHere ProductId = @ProductId And CartId = @CartId
Else
If Exists(Select ProductName From Products Where ProductId = @ProductId)
Insert Into ShoppingCart (CartId, ProductId, Attributes, Quantity, DateAdded)
Values (@CartId, @ProductId, @Attributes, 1, GETDATE())

Есть ли у кого-нибудь идеи, как это исправить. Спасибо

Ответы [ 2 ]

0 голосов
/ 25 мая 2011
ALTER PROCEDURE [dbo].[ShoppingCartAddItem]
(@CartId char(36),
 @ProductId int,
 @Attributes nvarchar(1000))
AS
If Exists(Select CartId from ShoppingCart Where ProductId = @ProductId And CartId = @CartId AND Attributes = @Attributes)
    UPDATE ShoppingCart
    Set Quantity = Quantity + 1
    Where ProductId = @ProductId And CartId = @CartId AND Attributes = @Attributes
Else
    Insert Into ShoppingCart (CartId, ProductId, Attributes, Quantity, DateAdded)
    Values (@CartId, @ProductId, @Attributes, 1, GETDATE())
0 голосов
/ 24 мая 2011

Вы говорите, что в одной корзине может быть только один экземпляр данного товара. Вам также необходимо добавить проверку для атрибутов. Если атрибуты являются количеством обновления, вставьте новую запись.

If Exists(Select CartId From ShoppingCart Where ProductId = @ProductId and CartId = @CartId AND Attributes = @Attributes)
  BEGIN
     UPDATE ShoppingCart Set Quantity = Quantity + 1 
       WHere ProductId = @ProductId And CartId = @CartId  AND Attributes = @Attributes
  END
Else   
  BEGIN  
      Insert Into ShoppingCart (CartId, ProductId, Attributes, Quantity, DateAdded) Values (@CartId, @ProductId, @Attributes, 1, GETDATE()) 
  END
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...