Rundungsprobleme mit TextBox-Inhalten

headpainter

Grünschnabel
Hallo,
ich habe folgendes Problem.
Ich möchte neue Datensätze über Textboxen anlegen.
Das funktioniert an und für sich auch ganz gut.

Allerdings wird verlangt, das ich den TextBox-Inhalt (String) in Decimal umwandle.
Habe ich dann über

var = CDedc(TextBox.Text)

realisiert.
Allerdings speichert er jetzt die eingegebenen Werte auf ganzzahlige werte abgespeichert ab.
Ich komme ums verrecken nicht dahinter, wie ich den String mit zwei Nachkommastellen konvertiert bekomme.
 
Hoi,

mit

C#:
decimal dec = Convert.ToDecimal(textBox1.Text);

sollte es klappen, du musst nur beachten, dass die Eingabezeichenfolge einer Zahl in den aktuellen Ländereinstellungen entspricht, also in Deutschland z.B. 1,234 (Komma) oder du gibst ToDecimal noch einen Kulturinformationen mit.

Gruß,
Sebastian
 
Zuletzt bearbeitet von einem Moderator:
Ne, das klappt alles nicht.

Ich benutze übrigens VB.

Auch mit parse komme ich nicht weiter, egal was ich mache, er rundet auf einen ganzzahligen Wert.
 
Ich hab es jetzt noch mal in einer neuen Form getestet und die Umwandlung in Fließkommazahlen klappt soweit problemlos.

Also liegt mein Problem nicht in der Umwandlung.
Meiner Meinung muß es dann an der Speicherung in die Datenbank liegen.
Kann es sein, das es am Execute Mode meiner Abfrage liegt?
Der steht auf NonQuery und laut Tooltip gibt NonQuery eine ganze Zahl zurück.
 
Moin,

System.Convert ist eine Klasse des .NET-Frameworks. Sie steht sowohl in C#, als auch in VB bzw. jeder anderen .NET Sprache zur Verfügung.

Ob es an der Speicherung deiner Daten in der Datenbank liegt, kann man ohne genauerere Kentnisse der Tabelle leider nicht sagen, du kannst ja mal den CREATE TABLE der Tabelle posten.
Ansonsten stelle uns doch mal ein wenig mehr Code zur Verfügung.

Bzgl. der Rückgabe von NonQuery -> Diese Methode liefert dir die Anzahl, der durch die Abfrage betroffenen Zeilen (Affected Rows). Es hat nichts mit deinem decimal-Wert zu tun. :rolleyes:

Gruß,
Sebastian
 
Der steht auf NonQuery und laut Tooltip gibt NonQuery eine ganze Zahl zurück.
Der Rückgabewert der Funktion ExecuteNonQuery gibt die Anzahl der betroffenen Zeilen zurück. da es keine halben Zeilen gibt, macht hier ein Integer schon Sinn.

EDIT:
Ups, das hat ja Sebastian schon geklärt :-(

Aber wie Sebastian schon geschrieben hat:
Poste doch mal deinen DDL-Statement für die Tabelle. Vielleicht passt ja der Datentyp der Spalte nicht.
 
Zurück