Umrechnung dezimal sql-Typ zu .net float-Typ
Ich habe decimal (18,2) - Daten in sql und ich float, die Eigenschaft der Klasse .net-Seite. Wenn ich wählen Sie das Objekt aus .net liefert eine Fehlermeldung wie diese:
The 'DiscountRate' property on 'Product' could not be set to a 'Decimal' value. You must set this property to a non-null value of type 'Single'.
Haben Sie einen Vorschlag?
- Es würde helfen, zu posten, die Struktur der Tabelle und der Klassendefinition.
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Ihr .NET-code double oder decimal-Typ für decimal(18, 2).
Sehen hier für einen Querverweis von SQL zu .NET-Typen.
Nun, wenn Sie decimal-Spalte kann null sein, stellen Sie sicher, Sie verwenden die dezimal-null-Werte zulässt oder
Ich würde vorschlagen, dass müssen Sie entweder ändern Sie Ihre Eigenschaft in Ihr .NET-Klasse in einen decimal-Typ, oder führen Sie eine explizite Konvertierung in eine float-Einstellung, wenn es. Welche Sie verwenden, ist wirklich abhängig von Ihrem code aber mit einem decimal-Typ scheint mehr richtig, ohne weiteren Kontext.
Können Sie
Decimal Type
Link : http://msdn.microsoft.com/en-us/library/system.decimal.aspx
Lesen Sie
Specifying Parameter Data Types section
Link : http://msdn.microsoft.com/en-us/library/yy6y35y8.aspx
Ändern Sie die Eigenschaft
decimal
. Es macht die Umstellung leichter und schützt Sie von Rundungsfehler kommen mitfloat
oderdouble
.Hier ist eine ausführliche Diskussion der Frage: dezimal-vs. double