Tom Knowlton
asked on
value cannot be converted
for each de as DictionaryEntry in htTableList
Dim td as New TableDetails()
td = de.Value
Dim dd as New Check_Tables.ColumnDetails
dd = CType(td.GetColumns(),Colu mnDetails) 'COMPILER ERROR HERE
Dim cd as New Check_Tables.ColumnDetails (de.Key,dd .Sources)
'debug.WriteLine("Reportin g: " + td.GetColumns().ToString)
debug.WriteLine("Table: " + de.Key + ", " + de.Value)
Next
...\Form1.vb(67): Value of type '1-dimensional array of Check_Tables.ColumnDetails ' cannot be converted to 'Check_Tables.ColumnDetail s'.
CODE DETAILS, FOR YOUR REFERENCE:
Public Class ColumnDetails
Public Name As String
Public Sources As ArrayList
Public Sub New(ByVal n As String, ByVal srcs As ArrayList)
Me.Name = n
Me.Sources = srcs
End Sub
Public Sub New()
me.name = nothing
me.sources = new ArrayList()
End Sub
End Class
Public Class TableDetails
Public Sub New()
End Sub
Private Sources As ArrayList = New ArrayList
Private columnsHT As New Hashtable
Public Sub AddSource(ByVal src As String)
If Not Sources.Contains(src) Then Sources.Add(src)
End Sub
Public Function GetSources() As String()
Return CType(Sources.ToArray(GetT ype(String )), String())
End Function
Public Sub AddColumn(ByVal ColumnName As String, ByVal src As String)
If Not columnsHT.ContainsKey(Colu mnName) Then
columnsHT.Add(ColumnName, New ArrayList(New String() {src}))
End If
Dim al As ArrayList = CType(columnsHT(ColumnName ), ArrayList)
If Not al.Contains(src) Then
al.Add(src)
End If
End Sub
Public Function GetColumns() As ColumnDetails()
Dim al As ArrayList = New ArrayList
For Each name As String In columnsHT
al.Add(New ColumnDetails(name, CType(columnsHT(name), ArrayList)))
Next
Return CType(al.ToArray(GetType(C olumnDetai ls)), ColumnDetails())
End Function
'Tom Knowlton
'Earl's function as he left it on Wed, 22 Nov, 2006
'Public Function GetColumns() As ColumnDetails()
' Dim al As ArrayList = New ArrayList
' For Each name As String In columnsHT
' al.Add( _
' New ColumnDetails( _
' name, _
' CType(columnsHT(name), ArrayList) _
' ) _
' )
' Next
' Return CType(al.ToArray(GetType(C olumnDetai ls)), ColumnDetails())
'End Function
End Class
Dim td as New TableDetails()
td = de.Value
Dim dd as New Check_Tables.ColumnDetails
dd = CType(td.GetColumns(),Colu
Dim cd as New Check_Tables.ColumnDetails
'debug.WriteLine("Reportin
debug.WriteLine("Table: " + de.Key + ", " + de.Value)
Next
...\Form1.vb(67): Value of type '1-dimensional array of Check_Tables.ColumnDetails
CODE DETAILS, FOR YOUR REFERENCE:
Public Class ColumnDetails
Public Name As String
Public Sources As ArrayList
Public Sub New(ByVal n As String, ByVal srcs As ArrayList)
Me.Name = n
Me.Sources = srcs
End Sub
Public Sub New()
me.name = nothing
me.sources = new ArrayList()
End Sub
End Class
Public Class TableDetails
Public Sub New()
End Sub
Private Sources As ArrayList = New ArrayList
Private columnsHT As New Hashtable
Public Sub AddSource(ByVal src As String)
If Not Sources.Contains(src) Then Sources.Add(src)
End Sub
Public Function GetSources() As String()
Return CType(Sources.ToArray(GetT
End Function
Public Sub AddColumn(ByVal ColumnName As String, ByVal src As String)
If Not columnsHT.ContainsKey(Colu
columnsHT.Add(ColumnName, New ArrayList(New String() {src}))
End If
Dim al As ArrayList = CType(columnsHT(ColumnName
If Not al.Contains(src) Then
al.Add(src)
End If
End Sub
Public Function GetColumns() As ColumnDetails()
Dim al As ArrayList = New ArrayList
For Each name As String In columnsHT
al.Add(New ColumnDetails(name, CType(columnsHT(name), ArrayList)))
Next
Return CType(al.ToArray(GetType(C
End Function
'Tom Knowlton
'Earl's function as he left it on Wed, 22 Nov, 2006
'Public Function GetColumns() As ColumnDetails()
' Dim al As ArrayList = New ArrayList
' For Each name As String In columnsHT
' al.Add( _
' New ColumnDetails( _
' name, _
' CType(columnsHT(name), ArrayList) _
' ) _
' )
' Next
' Return CType(al.ToArray(GetType(C
'End Function
End Class
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Your trying to convert the ColumnDetails class into an array
Try: dd = CType(td.GetColumns,Column