Warum kann ich eine Ganzzahl nicht als Dezimalzahl entpacken?

ich habe einIDataRecord reader dass ich eine Dezimalstelle wie folgt abrufe:

decimal d = (decimal)reader[0];

Aus irgendeinem Grund wird eine ungültige Besetzungsausnahme ausgelöst, die besagt, dass die angegebene Besetzung ungültig ist.

Wenn ich es tuereader[0].GetType() es sagt mir, dass es ein Int32 ist. Soweit ich weiß, sollte das kein Problem sein ...

Ich habe dies mit diesem Snippet getestet, das einwandfrei funktioniert.

int i = 3750;
decimal d = (decimal)i;

Das hat mich am Kopf kratzen lassen und mich gefragt, warum es nicht gelingt, das im Leser enthaltene int als Dezimalzahl zu entpacken.

Weiß jemand, warum dies auftreten könnte? Fehlt mir etwas Feines?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage