Ich versuche, Daten aus meiner SQL-Basis zu einem DataTable
abrufen und einige Felder in Dezimal-Operationen.Convert DataTable-Feld von String in doppelte
Da ich string
s bekommen, int
s und double
s in meinem DataTable
ist wie diese new DataTable();
zu initialisieren. So ist der Standardtyp auf Aktualisierung: Das ist falsch, es ist string
gesetztdecimal
. Also keine Notwendigkeit zu konvertieren.
Imagine Ich möchte aus einem Feld zusammenzufassen meine DataTable
myRow = 2;
double sum = 0;
foreach (DataRow row in data.Rows)
{
if (row.Field<String>(myRow) != "")
sum = sum + double.Parse(row.Field<String>(myRow), CultureInfo.InvariantCulture.NumberFormat);
}
ich verhindern, dass leere Felder hinzugefügt werden. Also versuche ich nicht eine leere Zeichenfolge zu konvertieren.
Objekt des Typs 'System.Decimal' kann nicht in den Typ 'System.String' umgewandelt werden.
Wenn es keine „guten“ Weg, dies zu konvertieren ist, kann ich meine DataTable
ändern nur decimals
zu bekommen, aber wie kann ich Fill
mit Decimal
s?
aktualisiert Da der Standardtyp decimal
ist, kann ich
sum = sum + (double) row.Field<decimal>(myRow);
Eine Arbeit tun um würde meine Datenbank tun, um die Summe wird zu machen.
In Datatable das Feld ' 'System.Decimal'', Sie versuchen, die gleiche Zeichenfolge –
Frage unklar zu werfen. Dies zeigt an, dass es als String gespeichert ist: 'row.Field'. Aber der Fehler zeigt an, dass es als Dezimalzahl gespeichert ist. Dann müssen Sie eine Zeichenfolge nicht zu dezimieren, wenn es bereits eins ist. –
_ "Oder ich könnte eine SQL-Anfrage machen, um meine Summe zu machen" _ Uhm, natürlich könntest du das tun. Aber was ist deine Frage jetzt? –