Fehler während der Einnahme von SUMME() der Spalte in der datatable
DataTable dtStock = new DataTable();
DataColumn dcTotalCases = new DataColumn("TotalCases");
dcTotalCases.DataType = System.Type.GetType("System.Int32");
dcTotalCases.ReadOnly = false;
dtStock.Columns.Add(dcTotalCases);
Methode 1
int sum = Convert.ToInt32(dtStock.Compute("Sum([TotalCases]) ", "[TotalCases] <> ''"));
Wenn ich diese Methode verwenden, bekomme ich eine Fehlermeldung
Ungültige Verwendung der Aggregat-Funktion Sum() und Type: String.
Methode 2
int sum = Convert.ToInt32(dtStock.Compute("SUM(Convert([TotalCases], 'System.Int32'))", "");
Wenn ich diese Methode verwenden, bekomme ich eine Fehlermeldung
Syntax-Fehler im Aggregat argument: Erwartet ein einziges argument-Spalte
mit möglich 'Kind' - qualifier.
Bitte helfen Sie mir...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube, dass die Methode #1 sollte funktionieren - nur nicht vergleichen Ihre
INT
Spalte auf einen leeren string!!So etwas wie dieses:
oder
oder was auch immer Sie brauchen - einfach nicht mit
[TotalCases] <> ''
da vergleicht einINT
auf eine leere Zeichenfolge - und das ist nicht zur Arbeit gehen!Sum(TotalCases)
in Ihrem sample zu entfernen, die unnötig Speicherplatz, und meine beiden code-Zeilen funktionieren einwandfrei.Ich habe eine Datatable, die ich habe nicht angegebenen Datentyp für jede Spalte. Alle Werte in der Spalte sind vom Typ integer. wenn ich die user der obigen Summe (), erhalte ich den Fehler.
Invalid usage of aggregate function Sum() and Type: String.
Aber wenn ich geben Sie den Datentyp für die Spalte seiner arbeiten korrekt.