Reader gibt Summe von Kosten nicht zurück

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von JackCimberly.

    Reader gibt Summe von Kosten nicht zurück

    Moinsen !

    Ich hab ein kleines Problem mit meinem VB Progrämmchen. Das ist eine Art Projekt für die Schule und daher wäre es ganz gut wenn mir hier jemand helfen könnte :D

    Nun zu meinem Problem:

    Das Programm ist verbunden mit einer Access Datenbank via OleDBConnection.
    Es gibt in der Datenbank eine Tabelle, wo Kosten gespeichert sind.



    Private Sub btnAuswertung_Click(sender As Object, e As EventArgs) Handles btnAuswertung.Click

    If rbGesamt.Checked Then
    cmd.Connection = con
    cmd.CommandText = "SELECT SUM(Kosten) FROM BD_Kosten ;"
    Try
    con.Open()
    reader = cmd.ExecuteReader()
    Do While reader.Read
    lsbAuswertung.Items.Add(
    reader("Kosten"))
    Loop
    reader.Close()
    con.Close()
    Catch ex As Exception
    MessageBox.Show(ex.Message)
    End Try
    End If
    End Sub


    Mein Ziel ist folgendes :
    Ich verbinde mich mit der Datenbank, in meiner Form ist ein Radio Button "Gesamtkosten" schon ausgewählt und wenn ich nun einen Button drücke soll er die Summe der ganzen Kosten in einer Listbox ausgeben.

    Ich kriege aber leider nur eine Messagebox wo "Kosten" drin steht, nicht mal eine Fehlermeldung oder sowas :/
    Ich bin mir auch nicht sicher ob ich in der Schleife den Reader mit "Kosten" füllen muss wenn er mir nur die Summe ausgeben soll aus der Tabelle :/

    Hättet ihr da ein Hinweis für mich ?

    Vielen Dank schon mal. :thumbsup:
    Mit cmd.ExecuteScalar() bekommst du den Wert der ersten Spalte der ersten Zeile des Abfrageergebnisses, also genau das was du benötigst.

    Wenn du mit ExecuteReader arbeiten möchtest, führt reader.GetDouble(0) (o.ä.) zum Ziel (Spaltenindex ist 0-basierend).
    Alternativ kann man der Spalte mit dem aggregierten Wert auch einen Namen geben: SELECT SUM(kosten) AS Summe FROM ....
    Die Syntax ist schon mal richtig:

    VB.NET-Quellcode

    1. SELECT SUM(Spaltenname1) FROM Tabellenname[table][/table]


    Aber woher kommt das Leerzeichen und Semikolon am Ende her?
    Nimm mal den Try-Block raus, dann sollte auch eine richtige Exception kommen, oder?
    Grüße JackCimberly

    Deine Anfrage erledigt?
    Als erledigt markieren