Wie in der Überschrift schon erwähnt, ich habe ein NumericUpDown Feld in dem ich einen Wert eingetragen habe, danach wird dieser mit convert.todouble in double (kaleingabe, eweingabe und kheingabe) konvertiert und danach wird noch durch 100 dividiert...
Somit entstehen in den meisten fällen auch Kommazahlen.
Wenn ich diese dann mit
C#-Quelltext
1: 2:
| sqlprodukteingabe = "INSERT INTO produkte(produkt, kalorien, eiweiss, kohlehydrate)" + " Values('" + produkteingabe + "','" + kaleingabe + "','" + eweingabe + "','" + kheingabe + "')"; |
an meinen Sql Server übergeben will entsteht das problem, das in den Doublevariablen als Dezimaltrennzeichen "," verwendet wird und bei der Übergabe dann natürlich folgender Fehler auftritt:
Zitat: |
Fehler beim Konvertieren des varchar-Datentyps in float. |
Weil folgende Zeile übergeben wird:
INSERT INTO produkte(produkt, kalorien, eiweiss, kohlehydrate) Values('Steak','5','0,2','0,01')
Und damit natürlich die ganze Syntax versaut wird...
Jetzt hab ich schon versucht das ganze mit folgendem Code zu lösen... was aber keinen unterschied macht -.-
C#-Quelltext
1: 2: 3: 4: 5:
| NumberFormatInfo nfi = new CultureInfo("en-US", false).NumberFormat; nfi.NumberDecimalSeparator = "."; double kaleingabe = Convert.ToDouble(numericUpDown1.Value, nfi); double eweingabe = Convert.ToDouble(numericUpDown2.Value, nfi); double kheingabe = Convert.ToDouble(numericUpDown3.Value, nfi); |