Ausgabe der Summe einer Tabellenspalte (SQL,C#,WM)

Hallo zusammen,

ich bin noch sehr neu in der C# Programmierung mit SQL-Abfrage.
Ich bin gerade dabei eine Applikation für einen PDA zu entwickeln. Dazu benutzt ich MS Visual

Studio 2008.

In meiner SQL Datenbank habe ich verschiedene Tabellen gespeichert.

Z.B.

Spalten Tab1: Datum, Name, Ausgabe

Nun möchte ich gerne einfach nur die Summe aller Ausgaben ausgeben lassen. Dieser Wert soll ganz einfach in einem Label (oder Textfeld) dargestellt werden.

Aber ich bekomme es einfach nicht hin. Wie weise ich einem Textfeld oder Label diese Wert bzw. Abfrage zu??

Meine Abfrage lautet:

SELECT SUM(Ausgabe) AS Euro
FROM [Tab1]

Ich weiß, dass mir wahrscheinlich elementares Wissen in der Programmierung mit SQL und C# fehlt - aber so schwer kann es ja wirklich nicht sein!

Aller besten Dank für eine Antwort.

Gruß

Hallo zusammen,

Servus

Nun möchte ich gerne einfach nur die Summe aller Ausgaben
ausgeben lassen. Dieser Wert soll ganz einfach in einem Label
(oder Textfeld) dargestellt werden.

Was spricht dagegen diese einfach per schleife zusammenzuzählen.

Ich realisiere sowas in der regel immer so

OleDbDataConnection nCon = new OleDbDataConnection(Provider,Datenquelle);

OleDbCommand nCom = new OleDbCommand(„Select Ausgabe From Tab1“);

nCon.Open();

OleDbDataReader red = nCom.ExecuteReader();

int gesamtsumme = 0; //Wen es sich hierbei um Geldbeträge handelt wirst du wahrscheinlich double anstatt int brauchen

while(red.Read())
{

gesamtsumme = gesamtsumme + red[0]; // Wenn die Summen als text und nicht als zahl in der Datenbank gespeichert werden musst du red[0] halt noch konvertieren.

}
red.close();
nCon.close();
red.Dispose();
nCom.Dispose();
nCon.Dispose();
textbox1.Text = gesamtsumme.ToString();
label1.Text = gesamtsumme.Tostring();

Es gibt bestimmt einen geschickteren weg das zusammenzurechnen, ob das allerdings direkt über SQL Commands geht weiß ich nicht hab ich auch nichts dazu gefunden.

Ich hoffe das hilft dir weiter.

Gruß Bytestorm

Guten Tag,

Der Ansatz von Bytestorm war schon nicht schlecht, aber es geht noch einfacher.

OleDbDataConnection nCon =
new OleDbDataConnection(Provider,Datenquelle);

OleDbCommand nCom = new OleDbCommand(„Select SUM(Ausgabe) AS Gesamt From Tab1“);

nCon.Open();
OleDbDataReader red = nCom.ExecuteReader();

int Gesamtsumme = 0; //könnte ggf. auch ein float-Datentyp sein

if (red.Read())
{
Gesamtsumme = (int)red[„Gesamt“];
}
red.close();
nCon.close();
red.Dispose();
nCom.Dispose();
nCon.Dispose();
textbox1.Text = Gesamtsumme.ToString();
label1.Text = Gesamtsumme.Tostring();

Hallo zusammen!

…und noch einfacher ohne DataReader:

using (OleDbDataConnection conn = new OleDbDataConnection(Provider,Datenquelle))
{
 OleDbCommand cmd = new OleDbCommand("Select SUM(Ausgabe) From Tab1", conn);
 cmd.Connection.Open();
 int Summe = (int)cmd.ExecuteScalar();
 textbox1.Text = Summe.ToString();
 cmd.Connection.Close();
}

Gruß,
Martin