Moin!
ich lese eine Oracle-DB aus und möchte abhängig vom Datentyp eine Formatierung vornehmen.
Hier zunächste der aktuelle Code:
Wird ein Feld mit DEZIMAL ausgewertet, dann funktioniert das.
Nun habe ich aber ein datetime-Fled, dann kommt es zu folgender Fehlermeldung:
hier noch die Werte
Es müsste doch eine ToString-Konvertierung möglich sein oder habe ich einen Gedankenfehler.
Kann mir einer weiterhelfen?
ich lese eine Oracle-DB aus und möchte abhängig vom Datentyp eine Formatierung vornehmen.
Hier zunächste der aktuelle Code:
VB.NET-Quellcode
- Private Function ConvertOraReaderToDict(reader As OracleDataReader, Optional FormatDate As String = "dd.MM.yyyy") As Dictionary(Of String, String)
- Dim Result As New Dictionary(Of String, String)
- Dim ValueTemplate As String = "????"
- If reader.HasRows = False Then Return Result
- For RecordCount = 0 To reader.FieldCount - 1
- Dim Wert As String = ""
- Dim DataType As Type = reader.GetFieldType(RecordCount)
- Dim DataName As String = reader.GetName(RecordCount).ToUpper
- If IsDBNull(reader(RecordCount)) Then ' Leeres Datenfeld
- If Result.ContainsKey(DataName) = False Then
- Result.Add(DataName, ValueTemplate)
- Else
- Console.WriteLine(String.Format("Fehler beim Auslesen von Ora-Daten ({0})", DataName))
- End If
- Else ' mit Wert belegt
- Select Case DataType.Name.ToUpper
- Case "DECIMAL"
- Wert = reader(RecordCount).ToString
- Case "DATETIME"
- Wert = reader(RecordCount).ToString(FormatDate)
- Case "STRING"
- Wert = reader(RecordCount).ToString
- Case Else
- Console.WriteLine(String.Format("WARNING unberücksichtigter Dateityp ({0})", DataType.Name.ToUpper))
- Wert = reader(RecordCount).ToString
- End Select
- If Result.ContainsKey(DataName) = False Then
- Result.Add(DataName, Wert)
- Else
- Console.WriteLine(String.Format("Fehler beim Auslesen von Ora-Daten ({0})", DataName))
- End If
- End If
- Next
- Return Result
- End Function
Wird ein Feld mit DEZIMAL ausgewertet, dann funktioniert das.
Nun habe ich aber ein datetime-Fled, dann kommt es zu folgender Fehlermeldung:
'reader(RecordCount).ToString(FormatDate)' threw an exception of type 'System.InvalidCastException'
hier noch die Werte
Es müsste doch eine ToString-Konvertierung möglich sein oder habe ich einen Gedankenfehler.
Kann mir einer weiterhelfen?