none
C# SQL Datenbank Werte summieren RRS feed

  • Frage

  • Hallo zusammen,

    Ich bin mit meinen Datenbank Projekt an eine kleine Grenze gestoßen.

    Ich möchte nun die Summe von verschiedenen Werten bilden. Diese Werte sind beispielsweise 7.50, 8.0 ...

    Es wäre dabei gut, wenn alle Zeilen addiert und als Summe in einer Textbox ausgegeben werden können. 

    Leider fehlt mir dabei die Umsetzung. 

    Es wäre sehr schön, wenn mir jemand weiterhelfen könnte.

    IDEE:

            private void button6_Click(object sender, EventArgs e)
            {
                {
                    connection.Open();
                    SqlCeCommand command = new SqlCeCommand();
                    command.Connection = connection;
                    command.CommandText = "SELECT ID, sum(ID) FROM TeeTest WHERE ID";
                    SqlCeDataReader reader = command.ExecuteReader();
                    while (reader.Read())
                    {
                        textBox11.Text = sum["ID"];
                    }
                    connection.Close();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("ERROR" + ex);
                }
            }

    Mittwoch, 29. Oktober 2014 10:47

Antworten

  • Hi,

    die Summe von ID Werten zu bilden, ist in der Regel nicht unbedingt sinnvoll.

    Vom Grundsatz her ist das aber natürlich schon möglich. Dein Problem dabei ist, dass Du die ID Spalte selbst mit in dem SELECT Statement hast, das führt zu einem Fehler aber selbst wenn nicht, würde er nach ID gruppieren und käme bei jedem einzelnen Datensatz nur auf den Wert, der in ID steht.

    Ändere das SQL Statement wie folgt:

    SELECT SUM( <Spalte> ) AS SummeDerWerte
    FROM   Tabelle
    

    Wie Du auf "sum["ID"]" kommst:

    while (reader.Read())
    {
        textBox11.Text = sum["ID"];
    }

    weiß ich nicht, da es kein Objekt mit dem Namen "sum" gibt. Das wäre dann wohl eher "reader". Ändere das daher wie folgt:

    reader.Read();
    textBox11.Text = reader["SummeDerWerte"];
    

    Du willst ja eh nur einen Wert auslesen.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Mittwoch, 29. Oktober 2014 11:23
    Moderator
  • Ich habe es dann doch noch geschafft:

            private void button6_Click(object sender, EventArgs e)
            {
                try
                {
                    connection.Open();
                    SqlCeCommand command = new SqlCeCommand();
                    command.Connection = connection;
                    command.CommandText = "SELECT SUM(ID) AS SummeDerWerte FROM TeeTest";
                    SqlCeDataReader reader = command.ExecuteReader();
                    reader.Read();
                    textBox11.Text = reader["SummeDerWerte"].ToString();
                    
                    connection.Close();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("ERROR" + ex);
                }
            }

    Danke für die  Hilfe !

    Mittwoch, 29. Oktober 2014 11:59

Alle Antworten

  • Hi,

    die Summe von ID Werten zu bilden, ist in der Regel nicht unbedingt sinnvoll.

    Vom Grundsatz her ist das aber natürlich schon möglich. Dein Problem dabei ist, dass Du die ID Spalte selbst mit in dem SELECT Statement hast, das führt zu einem Fehler aber selbst wenn nicht, würde er nach ID gruppieren und käme bei jedem einzelnen Datensatz nur auf den Wert, der in ID steht.

    Ändere das SQL Statement wie folgt:

    SELECT SUM( <Spalte> ) AS SummeDerWerte
    FROM   Tabelle
    

    Wie Du auf "sum["ID"]" kommst:

    while (reader.Read())
    {
        textBox11.Text = sum["ID"];
    }

    weiß ich nicht, da es kein Objekt mit dem Namen "sum" gibt. Das wäre dann wohl eher "reader". Ändere das daher wie folgt:

    reader.Read();
    textBox11.Text = reader["SummeDerWerte"];
    

    Du willst ja eh nur einen Wert auslesen.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Mittwoch, 29. Oktober 2014 11:23
    Moderator
  • Den Ansatz als solches Verstehe ich schon, nur leider nimmt er die Zeile vom Reader + der Textbox nicht.

    Dieses SummeDerWerte, wie muss das denn implementiert werden ?

    Mittwoch, 29. Oktober 2014 11:53
  • Ich habe es dann doch noch geschafft:

            private void button6_Click(object sender, EventArgs e)
            {
                try
                {
                    connection.Open();
                    SqlCeCommand command = new SqlCeCommand();
                    command.Connection = connection;
                    command.CommandText = "SELECT SUM(ID) AS SummeDerWerte FROM TeeTest";
                    SqlCeDataReader reader = command.ExecuteReader();
                    reader.Read();
                    textBox11.Text = reader["SummeDerWerte"].ToString();
                    
                    connection.Close();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("ERROR" + ex);
                }
            }

    Danke für die  Hilfe !

    Mittwoch, 29. Oktober 2014 11:59