2016-05-27 5 views
0

Ich habe eine Datentabelle und wenn ich debugge, sehe ich, dass es voll mit richtigen Daten ist. Ich versuche eine Rechenmethode zu verwenden, aber es geht nicht gut. Ich versuchteKann keine Berechnungsmethode für Datentabelle verwenden

Dim xx As DataTable = gelenData.Compute("Sum(H_PERSON_P_NO_543)", "H_PERSON_P_CINS_544 = 'ERKEK'") 

und dies hat mir einen Fehler wie

Kann nicht das Objekt des Typs ‚System.Int64‘ werfen ‚System.Data.DataTable‘ eingeben.

Als ich versuchte,

Dim xx As DataView = gelenData.Compute("Sum(Convert([H_PERSON_P_NO_543], 'System.Int32'))", "H_PERSON_P_CINS_544 = 'ERKEK'") 

oder

Dim xx As DataView = gelenData.Compute("Sum(Convert([H_PERSON_P_NO_543], 'System.Int64'))", "H_PERSON_P_CINS_544 = 'ERKEK'") 

Ich erhalte diese Fehler

Syntaxfehler in Aggregat Argument: In Erwartung einer einzigen Spalte Argument mit möglichen 'Child' Qualifier.

Ich bin wirklich hier stundenlang fest und versuchte zu viele Dinge, aber es scheint, dass ich etwas vermisse. Was mache ich falsch ?

Antwort

2

Ein Blick auf Ihre erste Codezeile:

Dim xx As DataTable = gelenData.Compute("Sum(H_PERSON_P_NO_543)", "H_PERSON_P_CINS_544 = 'ERKEK'") 

Sie nicht xx als Datatable erklären kann, da es nicht ein Datatable-Objekt zurückgibt, sondern ein Int64.

Was es tatsächlich tut ist, die tatsächliche "Summe" Ihres Ausdrucks zurückzugeben.

Also, wenn Sie Betrachten Sie es wie folgt aus:

„Gib mir die Gesamtsumme von H_PERSON_NO_543 wo die H_PERSON_CINS_544 =‚ERKEK‘“

Und Sie haben die folgenden Daten (nur zum Beispiel):

H_PERSON_NO_543  H_PERSON_CINS_544 
     1     SOMETHING 
     3     ERKEK 
     5     ERKEK 
     7     SOMETHING ELSE 

Und Sie dann Ihren Code ausführen, kehrt es (da zwei Zeilen die Kriterien erfüllen, eine mit dem Wert und eine mit dem Wert).

Wenn Sie dann versuchen, es als DataTable zu werfen, wird es einfach ablehnen, da es ein nettes int ist und kein DataTable.

Also, vorausgesetzt, Sie die Werte aus der H_PERSON_NO_543 Spalte in der Tabelle die beste Wahl wäre zusammenzufassen wollen:

Dim xx As Integer = gelenData.Compute("Sum(H_PERSON_P_NO_543)", "H_PERSON_P_CINS_544 = 'ERKEK'") 
Verwandte Themen