📄 shoppingcart.vb
字号:
Imports System
Imports System.Data
Imports System.Data.SqlClient
Namespace Services
Public Class ShoppingCart
Private Connstring As String = _
"Data Source=localhost;Initial Catalog=store;user id=sa;pwd=sa"
Public Sub AddItem(ByVal CartID As String, ByVal ProductID As String, _
ByVal Quantity As Integer)
Dim sqlcmdAddItem As New SqlCommand("sp_ShoppingCart_AddItem")
With sqlcmdAddItem
.CommandType = CommandType.StoredProcedure
With .Parameters
.Add("@strCartID", SqlDbType.NVarChar, 50)
.Add("@strProductID", SqlDbType.Char, 38)
.Add("@intQuantity", SqlDbType.Int, 4)
.Item("@strCartID").Value = CartID
.Item("@strProductID").Value = ProductID
.Item("@intQuantity").Value = Quantity
End With
End With
Dim sqlconShoppingCart As New SqlConnection(Connstring)
sqlconShoppingCart.Open()
sqlcmdAddItem.Connection = sqlconShoppingCart
sqlcmdAddItem.ExecuteNonQuery()
sqlconShoppingCart.Close()
End Sub
Public Sub UpdateItem(ByVal CartID As String, _
ByVal ProductID As String, ByVal Quantity As Integer)
If Quantity < 0 Then
Throw New Exception("数量不能为负数!")
End If
Dim sqlcmdAddItem As New SqlCommand("sp_ShoppingCart_UPD")
With sqlcmdAddItem
.CommandType = CommandType.StoredProcedure
With .Parameters
.Add("@strCartID", SqlDbType.NVarChar, 50)
.Add("@strProductID", SqlDbType.Char, 38)
.Add("@intQuantity", SqlDbType.Int, 4)
.Item("@strCartID").Value = CartID
.Item("@strProductID").Value = ProductID
.Item("@intQuantity").Value = Quantity
End With
End With
Dim sqlconShoppingCart As New SqlConnection(Connstring)
sqlconShoppingCart.Open()
sqlcmdAddItem.Connection = sqlconShoppingCart
sqlcmdAddItem.ExecuteNonQuery()
sqlconShoppingCart.Close()
End Sub
Public Sub ClearCart(ByVal CartID As String)
Dim sqlcmdAddItem As New SqlCommand("sp_ShoppingCart_DEL")
With sqlcmdAddItem
.CommandType = CommandType.StoredProcedure
With .Parameters
.Add("@strCartID", SqlDbType.NVarChar, 50)
.Item("@strCartID").Value = CartID
End With
End With
Dim sqlconShoppingCart As New SqlConnection(Connstring)
sqlconShoppingCart.Open()
sqlcmdAddItem.Connection = sqlconShoppingCart
sqlcmdAddItem.ExecuteNonQuery()
sqlconShoppingCart.Close()
End Sub
Public Sub RemoveItem(ByVal CartID As String, ByVal ProductID As String)
Dim sqlcmdAddItem As New SqlCommand("sp_ShoppingCart_RemItem")
With sqlcmdAddItem
.CommandType = CommandType.StoredProcedure
With .Parameters
.Add("@strCartID", SqlDbType.NVarChar, 50)
.Add("@strProductID", SqlDbType.Char, 38)
.Item("@strCartID").Value = CartID
.Item("@strProductID").Value = ProductID
End With
End With
Dim sqlconShoppingCart As New SqlConnection(Connstring)
sqlconShoppingCart.Open()
sqlcmdAddItem.Connection = sqlconShoppingCart
sqlcmdAddItem.ExecuteNonQuery()
sqlconShoppingCart.Close()
End Sub
Public Function ItemsCount(ByVal strCartID As String) As Integer
Dim sqlcmdItemCount As New SqlCommand("sp_ShoppingCart_ItemsCount")
With sqlcmdItemCount
.CommandType = CommandType.StoredProcedure
With .Parameters
.Add("@strCartID", SqlDbType.NVarChar, 50)
.Item("@strCartID").Value = strCartID
End With
End With
Dim dsCartItems As New DataSet()
dsCartItems.Clear()
Dim Count As Integer
Dim sqlconShoppingCart As New SqlConnection(Connstring)
sqlcmdItemCount.Connection = sqlconShoppingCart
Dim sqladpCategories As New SqlDataAdapter(sqlcmdItemCount)
sqladpCategories.Fill(dsCartItems, "ItemsCount")
Count = dsCartItems.Tables("ItemsCount").Rows.Count
Return Count
End Function
Public Function SubTotal(ByVal strCartID As String) As Double
Dim sqlcmdAddItem As New SqlCommand("sp_ShoppingCart_SubTotal")
With sqlcmdAddItem
.CommandType = CommandType.StoredProcedure
With .Parameters
.Add("@strCartID", SqlDbType.NVarChar, 50)
.Add("@TotalCost", SqlDbType.Money, 8)
.Item("@strCartID").Value = strCartID
.Item("@TotalCost").Direction = ParameterDirection.Output
End With
End With
Dim sqlconShoppingCart As New SqlConnection(Connstring)
sqlconShoppingCart.Open()
sqlcmdAddItem.Connection = sqlconShoppingCart
sqlcmdAddItem.ExecuteNonQuery()
sqlconShoppingCart.Close()
If sqlcmdAddItem.Parameters("@TotalCost").Value.ToString <> "" Then
Return Val(sqlcmdAddItem.Parameters("@TotalCost").Value)
Else
Return 0
End If
End Function
Public Sub Migrate(ByVal OrigionCartID As String, ByVal NewCartID As String)
Dim sqlcmdAddItem As New SqlCommand("sp_ShoppingCart_Migrate")
With sqlcmdAddItem
.CommandType = CommandType.StoredProcedure
With .Parameters
.Add("@strOrigionCartID", SqlDbType.NVarChar, 50)
.Add("@strNewCartID", SqlDbType.NVarChar, 50)
.Item("@strOrigionCartID").Value = OrigionCartID
.Item("@strNewCartID").Value = NewCartID
End With
End With
Dim sqlconShoppingCart As New SqlConnection(Connstring)
sqlconShoppingCart.Open()
sqlcmdAddItem.Connection = sqlconShoppingCart
sqlcmdAddItem.ExecuteNonQuery()
sqlconShoppingCart.Close()
End Sub
Public Function GetCartID() As String
Dim curContext As System.Web.HttpContext = System.Web.HttpContext.Current
If curContext.User.Identity.Name <> "" Then
Return curContext.User.Identity.Name
End If
If Not curContext.Request.Cookies("CartID") Is Nothing Then
Return curContext.Request.Cookies("CartID").Value
Else
Dim tempCartID As System.Guid = Guid.NewGuid
curContext.Response.Cookies("CartID").Value = tempCartID.ToString
Return tempCartID.ToString
End If
End Function
Public Function GetItemsList( _
ByVal strCartID As String) As SqlDataReader
Dim sqlcmdItemCount As New SqlCommand("sp_ShoppingCart_ItemDetails")
With sqlcmdItemCount
.CommandType = CommandType.StoredProcedure
With .Parameters
.Add("@strCartID", SqlDbType.NVarChar, 50)
.Item("@strCartID").Value = strCartID
End With
End With
Dim Result As SqlDataReader
Dim sqlconShoppingCart As New SqlConnection(Connstring)
sqlconShoppingCart.Open()
sqlcmdItemCount.Connection = sqlconShoppingCart
Result = sqlcmdItemCount.ExecuteReader
Return Result
End Function
End Class
End Namespace
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -