ASP.NET

Moderators: None (Apply to moderate this forum)
Number of threads: 1735
Number of posts: 3305

This Forum Only
Post New Thread
Single Post View       Linear View       Threaded View      f

Report
Help instantiating Object which contains 2 embedded objects Posted by pdidow on 20 Jan 2010 at 1:12 PM
I am having some real issues with this one. I have a class which contains two other objects...but I cannot seem to instantiate those sub objects. Here is the code for my class:
   
Option Explicit On
Public Class Boot
    'A collection of Heads and Shells
#Region "Private Variables"
    Private _oHead As New WQS_BusinessEntity.Head
    Private _oShell As New WQS_BusinessEntity.Shell
    Private _iBootID As Integer
    Private _iBootTypeID As Integer
    Private _iVesselID As Integer



#End Region

#Region "Constructors"
    Public Sub New()

    End Sub
    Public Sub New(ByVal iBootID As Integer, ByVal iBootTypeID As Integer, ByVal iVesselID As Integer)
        _oHead = New WQS_BusinessEntity.Head
        _oShell = New WQS_BusinessEntity.Shell
        _iBootID = iBootID
        _iBootTypeID = iBootTypeID
        _iVesselID = iVesselID

    End Sub
#End Region

#Region "Public Properties"
    Public Property oHead() As Head
        Get
            Return _oHead
        End Get
        Set(ByVal oValue As Head)
            _oHead = oValue
        End Set
    End Property

    Public Property oShell() As Shell
        Get
            Return _oShell
        End Get
        Set(ByVal oValue As Shell)
            _oShell = oValue
        End Set
    End Property

    Public Property iBootID() As Integer
        Get
            Return _iBootID
        End Get
        Set(ByVal iValue As Integer)
            _iBootID = iValue
        End Set
    End Property
    Public Property iBootTypeID() As Integer
        Get
            Return _iBootTypeID
        End Get
        Set(ByVal iValue As Integer)
            _iBootTypeID = iValue
        End Set
    End Property
    Public Property iVesselID() As Integer
        Get
            Return _iVesselID
        End Get
        Set(ByVal iValue As Integer)
            _iVesselID = iValue
        End Set
    End Property
#End Region
End Class


Public Class BootSet
    Inherits Collections.ArrayList

    Public Shadows Function Add(ByVal oValue As Boot) As Integer
        If Not oValue Is Nothing Then
            MyBase.Add(oValue)
          
        End If
    End Function

    Default Public Shadows Property Item(ByVal iIndex As Integer) As Boot
        Get
            Return CType(MyBase.Item(iIndex), Boot)

        End Get
        Set(ByVal Value As Boot)
            MyBase.Item(iIndex) = Value
        End Set
    End Property

End Class
 



When I am using my Boot Object, I do so Here in my DAL:


  Dim oRow As DataRow
        Dim oSet As New WQS_BusinessEntity.BootSet
        Dim iCount As Integer = 0
        'Dim iTable As Integer
        'iTable = oDS.Tables.Count - 1
        For Each oRow In oDS.Tables(1).Rows
            Dim oItem As New WQS_BusinessEntity.Boot
         
            With oItem

              
                'Boot Data
                .iBootID = oDS.Tables(0).Rows(iCount).Item("BootID")
                .iBootTypeID = oDS.Tables(1).Rows(iCount).Item("BootFunctionTypeId")
                .iVesselID = oDS.Tables(1).Rows(iCount).Item("VesselId")
                '1 head, 1 shell per boot now.

                'Head Data
                oItem.oHead.iHeadID = ZeroIfNull(oDS.Tables(1).Rows(iCount).Item("HeadId"))
                oItem.oHead.iVesselID = ZeroIfNull(oDS.Tables(1).Rows(iCount).Item("VesselId"))
                oItem.oHead.iMaterialID = ZeroIfNull(oDS.Tables(1).Rows(iCount).Item("HeadMaterialId"))
                oItem.oHead.iLocationID = ZeroIfNull(oDS.Tables(1).Rows(iCount).Item("HeadLocationId"))
                oItem.oHead.strMaterial = oDS.Tables(1).Rows(iCount).Item("HeadMaterialName")
                oItem.oHead.dDiameter = ZeroIfNull(oDS.Tables(1).Rows(iCount).Item("HeadDiameter"))
                oItem.oHead.dCurrentThickness = ZeroIfNull(oDS.Tables(1).Rows(iCount).Item("HeadCurrentThickness"))
                oItem.oHead.dNominalThickness = ZeroIfNull(oDS.Tables(1).Rows(iCount).Item("HeadNominalThickness"))
                oItem.oHead.strShape = oDS.Tables(1).Rows(iCount).Item("HeadShapeName")
                oItem.oHead.iShapeID = ZeroIfNull(oDS.Tables(1).Rows(iCount).Item("HeadShapeId"))
                oItem.oHead.strLocation = EmptyIfNull(oDS.Tables(1).Rows(iCount).Item("HeadLocationOnVesselName"))
                'Shell(Data)
                oItem.oShell.iShellID = ZeroIfNull(oDS.Tables(1).Rows(iCount).Item("ShellId"))
                oItem.oShell.iVesselID = ZeroIfNull(oDS.Tables(1).Rows(iCount).Item("VesselId"))
                oItem.oShell.iMaterialID = ZeroIfNull(oDS.Tables(1).Rows(iCount).Item("ShellMaterialId"))
                oItem.oShell.strMaterial = EmptyIfNull(oDS.Tables(1).Rows(iCount).Item("ShellMaterialName"))
                oItem.oShell.dDiameter = ZeroIfNull(oDS.Tables(1).Rows(iCount).Item("ShellDiameter"))
                oItem.oShell.dCurrentThickness = ZeroIfNull(oDS.Tables(1).Rows(iCount).Item("ShellCurrentThickness"))
                oItem.oShell.dNominalThickness = ZeroIfNull(oDS.Tables(1).Rows(iCount).Item("ShellNominalThickness"))
                Select Case oDS.Tables(1).Rows(iCount).Item("ShellOrientation")
                    Case 0.0
                        oItem.oShell.cOrientation = "H"
                    Case 90.0
                        oItem.oShell.cOrientation = "V"
                    Case Else
                        'default to horizontal
                        oItem.oShell.cOrientation = "H"
                End Select

            End With
            'Add the Boot to the BootSet
            oSet.Add(oItem)
            iCount = iCount + 1

        Next

        Return oSet
    End Function
 


However, when I place a breakpoint on the 'Return oSET' line, and add a watch, this is what I see:

-		oSet	Count = 5	WQS_BusinessEntity.BootSet
-		(0)	{WQS_BusinessEntity.Boot}	Object
-		WQS_BusinessEntity.Boot	{WQS_BusinessEntity.Boot}	WQS_BusinessEntity.Boot
		_iBootID	220	Integer
		_iBootTypeID	0	Integer
		_iVesselID	30	Integer
+		_oHead	Count = 0	WQS_BusinessEntity.Head
+		_oShell	Count = 0	WQS_BusinessEntity.Shell
		iBootID	220	Integer
		iBootTypeID	0	Integer
		iVesselID	30	Integer
+		oHead	Count = 0	WQS_BusinessEntity.Head
+		oShell	Count = 0	WQS_BusinessEntity.Shell
+		(1)	{WQS_BusinessEntity.Boot}	Object
+		(2)	{WQS_BusinessEntity.Boot}	Object
+		(3)	{WQS_BusinessEntity.Boot}	Object
+		(4)	{WQS_BusinessEntity.Boot}	Object
 


Notice the count for my two objects, Ohead, and oShell, is zero. Im not sure why this doesnt instantiate properly, as I believe is what is going on. I could really use some help!



 

Recent Jobs

Official Programmer's Heaven Blogs
Web Hosting | Browser and Social Games | Gadgets

Popular resources on Programmersheaven.com
Assembly | Basic | C | C# | C++ | Delphi | Flash | Java | JavaScript | Pascal | Perl | PHP | Python | Ruby | Visual Basic
© Copyright 2011 Programmersheaven.com - All rights reserved.
Reproduction in whole or in part, in any form or medium without express written permission is prohibited.
Violators of this policy may be subject to legal action. Please read our Terms Of Use and Privacy Statement for more information.
Operated by CommunityHeaven, a BootstrapLabs company.