Wie kann ich eine Summe für die Spalte "Stück" in einer datatable?
Wie kann ich eine Summe für die Spalte "Stück" in einer datatable? Sagen, ich hatte die folgende Tabelle. Wie kann ich die Berechnung der "total" - Stücke für Artikel="Milch" und artno="15"?
Columns: article artno pieces
Rows:
1 milk 15 1
2 water 12 1
3 apple 13 2
4 milk 15 1
5 milk 16 1
6 bread 11 2
7 milk 16 4
Das Ergebnis der my new DataTable sollte dies sein:
Columns: article artno pieces
Rows:
1 bread 11 2
2 water 12 1
3 apple 13 2
4 milk 15 2
5 milk 16 5
Mein Code:
foreach (DataRow foundDataRow in foundRows1)
{
int i = 0;
foreach (DataRow dataRow in foundRows2)
{
if (object.Equals(dataRow.ItemArray[0], foundDataRow.ItemArray[0])
&& object.Equals(dataRow.ItemArray[3], foundDataRow.ItemArray[3]))
{
i = i + Convert.ToInt16(dataRow.ItemArray[4]);
}
}
Debug.Print(i.ToString());
}
Sorry, aber ich bin neu Datenbank-Entwickler und mein Englisch sprechen, die Sprache ist nicht so gut.
InformationsquelleAutor McSteel | 2011-10-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mithilfe der
DataTable.Berechnen
Methode, die Sie tun können:Diese Funktion hilft mir gut!!!! THX
InformationsquelleAutor Ani
Könnten Sie die
AsEnumerable
Methode etwa so:Möglicherweise müssen Sie fügen Sie einen Verweis auf System.Daten.
InformationsquelleAutor Michael Minton
Mithilfe von Michael ' s Vorschlag mit 1 weniger Schritt:
(Diese ist mit Linq to DataSet)
ah OK, habe ich behoben, den code entsprechend.
Nein, das ist nicht 1-zu-1 Beziehung, weil Milch kann artno = 15 oder 16
Ich glaube, es gab eine kleine Verzögerung zwischen meinem Kommentar und Antwort Korrektur... OK jetzt?
ja, das ist richtig, thx 😉
InformationsquelleAutor vc 74
in einem .NET 4 windows-Anwendung, dieses code-snippet gibt 9 in der variable Summe:
dt.Compute("SUM(Stücke)", string.Leer) kann ich für die Summe aller Teile
sollte trotzdem funktionieren, die Berechnen-Funktion ist da .NET 1.x
was Fragen Sie? können Sie versuchen, mein code und sehen, wie es funktioniert, und rufen Sie Berechnen, auf die Tabelle, und überprüfen Sie das Ergebnis? Ich denke, das beantwortet Ihre Frage.
InformationsquelleAutor Davide Piras