Oracle-Nummer C# - dezimal

Ich weiß, es gibt etliche threads und Beiträge zu diesem Thema im internet und ich habe gelesen (nicht jeder Artikel muss ich zugeben), aber keiner von Ihnen hat vollständig befriedigt mich.

Meine situation:

Ich bin mit ODP.net (dll-version 2.111.6.0), um Zugriff auf die Oracle-DB (version 10 + 11) und ein DataReader-Objekt, um die Daten abzurufen (.NET 3.5, C#).

Mit diesem code, die Ergebnisse in einem " System.OverflowException (Arithmetische operation hat einen überlauf verursacht.)'


decimal.TryParse(oraReader.GetOracleDecimal(0).Value.ToString(), 
  NumberStyles.Any, null, out parsedOraDecimal)

und diese Ergebnisse in einem Wert '3,000000000000000000000000000000000000000000000000000000000 E-126'


decimal.TryParse(oraReader.GetOracleValue(0).ToString(), 
  NumberStyles.Any, null, out parsedOraDecimal)

Nun muss ich einen Weg finden, abrufen und auswerten dieser Wert richtig - die DB ist auch aus anderen apps, die sind außerhalb meiner Kontrolle, so dass änderungen dort nicht möglich sind.

Umwandlung der Typen in meinem C# - code aus 'decimal' auf 'double' ist auch nicht wirklich eine option.

Irgendwelche Ideen?

InformationsquelleAutor robert.oh. | 2009-12-15
Schreibe einen Kommentar