2009-04-02 11 views
2

Wie berechne ich Summe von zwei Zeilen in Datentabelle, die vom Typ String ist?
in meinem Fall kann ich Spaltentyp nicht ändern.
i versucht, diese:Sum DataTable Spalten des Typs Zeichenfolge

1) Objekt objSum;
objSum = dt.Compute ("Summe (Gewichtung)", "");

2) dezimal gesamt = (dezimal) dt.Compute ("SUM ([WeightRate])", "");

aber kein Glück ...

Meine Tabelle:
Weightrate No.Ofvehicles
350,50 50
205,00 40

ich führen müssen als

Weightrate No.Ofvehicle
555,50 90

Antwort

7

Das berechnen mich thod ermöglicht eine gewisse rudimentäre Typumwandlung:

var sum = dt.Compute("Sum(Convert(WeightRate, 'System.Int32'))"); 

die MSDN-Hilfe auf DataColumn Expressions für weitere Informationen über das, was Sie mit einem Compute Methodenaufruf tun können.

Bearbeiten Nachdem Sie Ihre Frage erneut gelesen haben, werden Sie wahrscheinlich lieber System.Decimal als System.Int32 konvertieren, aber hoffentlich haben Sie das. ;-)

+0

ja ... Danke .. – Guddu

+0

@Matt: Es tut mir leid, dass ich diese Frage erneut gestellt habe. Auf eine andere Frage (http://stackoverflow.com/questions/8928748/syntaxerrorexception-using-datatable-compute-method-to-get-sum-of-a-converted-st/), die gleiche Sache hat nicht funktioniert. Könnten Sie bitte überprüfen, ob Ihr Code mit dem oben eingefügten Link funktioniert? Vielen Dank!! – shahkalpesh

+0

Sir ist nicht für mich arbeiten. Ich habe versucht, in vb.net 'Dt.Compute (" Summe (Convert (deliveryqty, 'System.Double')) "))' wie Kompilierzeit Fehler 'Argument des Filters fehlt ', so änderte ich so' Dt.Compute ("Sum (Convert (deliveryqty, 'System.Double'))", "")) 'Aber es funktioniert nicht Sir – Sathish

Verwandte Themen