Re: Liste ut kategorier med tilhørende artikler [
Besvar ]
Av: Stian SandbergSub LoopCategories()
Dim CategoryName As String, arrProducts As ArrayList
Dim Conn As New SqlConnection(ConnString)
Dim Cmd As New SqlCommand("SELECT * FROM Categories", Conn)
Cmd.Connection.Open()
Dim dr As SqlDataReader = Cmd.ExecuteReader
While dr.Read
CategoryName = dr.Item("CategoryName")
arrProducts = GetProducts(dr.Item("CategoryID"))
'Nå har jeg kategorinavnet i en variabel
'og en arraylist med alle ProductItems til
'den kategorien.
'Da kan jeg bare skrive ut CategoryName og
'loope gjennom ProductItem-objektene mine for
'å liste opp produkter under hver kategori
End While
Cmd.Connection.Close()
Cmd.Dispose()
Conn.Dispose()
End Sub
Function GetProducts(ByVal CategoryID As Integer) As ArrayList
Dim arrProducts As New ArrayList
Dim ConnProducts As New SqlConnection(ConnString)
Dim CmdProducts As New SqlCommand("SELECT * FROM Products WHERE CategoryID=@CategoryID", ConnProducts)
CmdProducts.Connection.Open()
CmdProducts.Parameters.Add(New SqlParameter("@CategoryID", CategoryID))
Dim dr As SqlDataReader = CmdProducts.ExecuteReader
While dr.Read
arrProducts.Add(New ProductItem(dr.Item("ProductID"), dr.Item("ProductName"), dr.Item("ProductDescription")))
End While
CmdProducts.Connection.Close()
CmdProducts.Dispose()
ConnProducts.Dispose()
Return arrProducts
End Function
Friend Class ProductItem 'Eget Produkt-objekt
Sub New(ByVal ID As Integer, ByVal Name As String, ByVal Description As String)
ProductID = ID
ProductName = Name
ProductDescription = Description
End Sub
Dim _ProductID As Integer
Public Property ProductID() As Integer
Get
Return _ProductID
End Get
Set(ByVal Value As Integer)
_ProductID = Value
End Set
End Property
Dim _ProductName As String
Public Property ProductName() As String
Get
Return _ProductName
End Get
Set(ByVal Value As String)
_ProductName = Value
End Set
End Property
Dim _ProductDescription As String
Public Property ProductDescription() As String
Get
Return _ProductDescription
End Get
Set(ByVal Value As String)
_ProductDescription = Value
End Set
End Property
End Class