Index: ActiviteitenOpvolging/ActiviteitenOpvolging/mappers/CacheMapper.vb
===================================================================
diff -u -r1677 -r1678
--- ActiviteitenOpvolging/ActiviteitenOpvolging/mappers/CacheMapper.vb (.../CacheMapper.vb) (revision 1677)
+++ ActiviteitenOpvolging/ActiviteitenOpvolging/mappers/CacheMapper.vb (.../CacheMapper.vb) (revision 1678)
@@ -99,9 +99,12 @@
Private Function ExtractItemFromDataReader(Of T)(ByRef dr As OdbcDataReader, key As String, Optional defaultValue As T = Nothing) As T
Dim value As Object
Try
+ 'Check if the column name is not present. If not present, return default value.
+ if not HasColumn(dr, key) Then Return defaultValue
+
'Extract the value with the key.
value = dr.Item(key)
- 'Check if the value is DBNull or normal Nothing.
+ 'Check if the value is DBNull or Nothing.
If IsDBNull(value) Or value Is Nothing Then
'If so, return default value.
Return defaultValue
@@ -117,5 +120,21 @@
End Try
End Function
+ '''
+ ''' Check if the data reader has a column with that name.
+ '''
+ '''
+ '''
+ '''
+ Public Function HasColumn(ByRef dr As OdbcDataReader, columnName As String) As Boolean
+ 'Loop through each row.
+ For Each row As DataRow In dr.GetSchemaTable().Rows
+ 'Check if column name matches defined one.
+ If row("ColumnName").ToString() = ColumnName Then Return True
+ Next
+ 'Column name was not found.
+ Return False
+ End Function
+
#End Region
End Module