Ich habe ein Problem mit dem Code unten:Table.compute() C# MIN, MAX und AVG
val_par_Decimal_Min = Math.Round(Convert.ToDecimal(dsTabDados.Tables[EquipTrigger[TGR]].Compute("MIN(" + col.ColumnName + ")", col.ColumnName + " <> 0")?.ToString() ?? "0"), 2).ToString().Replace(",", ".");
val_par_Decimal_Max = Math.Round(Convert.ToDecimal(dsTabDados.Tables[EquipTrigger[TGR]].Compute("MAX(" + col.ColumnName + ")", col.ColumnName + " <> 0")?.ToString() ?? "0"), 2).ToString().Replace(",", ".");
val_par_Decimal_Med = Math.Round(Convert.ToDecimal(dsTabDados.Tables[EquipTrigger[TGR]].Compute("AVG(" + col.ColumnName + ")", col.ColumnName + " <> 0")?.ToString() ?? "0"), 2).ToString().Replace(",", ".");
ich einige Daten sammle und in einer Tabelle zu speichern.
Die Spalte wird automatisch erstellt und der Typ ist dezimal.
Ich möchte die Minimal-, Maximal- und Mittelwert der Spalte berechnen den Wert ohne Berücksichtigung 0.
jedoch der folgende Fehler auftritt:
„Die Eingabezeichenfolge war nicht in einem korrekten Format“
Was mache ich falsch?
Versuchen Sie, Ihre Ausdrücke in kleinere, vorzugsweise atomare Anweisungen aufzuteilen. Anstatt "Math.Round (Convert.ToDecimal (...))" verwenden Sie temporäre Variablen für die Anweisungen in Brackets, um zu ermitteln, wo genau Sie den Fehler erhalten. Alternativ können Sie auch die wquickwatch für den inneren Ausdruck verwenden und sehen, was sie bewerten. Ich nehme an, der Fehler tritt beim Aufruf von 'ToDecimal' auf, weil der angegebene Wert nicht konvertiert werden kann. Aber ohne den Wert, der * zur Verfügung gestellt wird, ist es unmöglich, genau zu sagen. – HimBromBeere
danke für Ihre Hilfe. Unten ist die Lösung für mein Problem: –