Preise aus Datenbank zusammenrechnen

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Gelöschter Benutzer.

    Preise aus Datenbank zusammenrechnen

    Hallo an alle,

    entweder stell ich mich hier zu doof an oder keine Ahnung

    Ich will einfach ein paar preise aus einer Datenbank zusammenaddieren aber es klappt nicht

    In etwa so siehts bei php aus und da funktioniert es

    PHP-Quellcode

    1. <?php
    2. while ($Preise = sqlsrv_fetch_array))
    3. {
    4. $Gesamt += $Preise['Preis'];
    5. }
    6. echo "Gesamt: ".$Gesamt." €";
    7. ?>



    Bei meinem VB Code

    VB.NET-Quellcode

    1. Dim SQL_DB_CUSTOMER_SRV_1 As New SqlClient.SqlConnection(My.Settings.ApplicationDBConnectString)
    2. Dim SQL_DB_CUSTOMER_SRV_1_CMD As New SqlClient.SqlCommand
    3. Dim SQL_DB_CUSTOMER_SRV_1_READER As SqlClient.SqlDataReader
    4. Dim SQL_DB_CUSTOMER_SRV_1_ADAPTER As New SqlClient.SqlDataAdapter
    5. Dim SQL_DB_CUSTOMER_SRV_1_CMD_STRING As String
    6. SQL_DB_CUSTOMER_SRV_1_CMD_STRING = "select * from WarenkorbPosition where Kundennr='" & MAIN_FORM.MAIN_FORM_STATUS_L_CID.Text & "' and Auftragsnr='" & MAIN_FORM.MAIN_FORM_STATUS_L_ORDERID.Text & "'"
    7. SQL_DB_CUSTOMER_SRV_1.Open()
    8. SQL_DB_CUSTOMER_SRV_1_CMD.Connection = SQL_DB_CUSTOMER_SRV_1
    9. SQL_DB_CUSTOMER_SRV_1_CMD.CommandText = SQL_DB_CUSTOMER_SRV_1_CMD_STRING
    10. SQL_DB_CUSTOMER_SRV_1_ADAPTER.SelectCommand = SQL_DB_CUSTOMER_SRV_1_CMD
    11. SQL_DB_CUSTOMER_SRV_1_READER = SQL_DB_CUSTOMER_SRV_1_CMD.ExecuteReader()
    12. SQL_DB_CUSTOMER_SRV_1_READER.Read()
    13. Dim PriceCount As String
    14. PriceCount = "0.00"
    15. While SQL_DB_CUSTOMER_SRV_1_READER.Read()
    16. PriceCount += SQL_DB_CUSTOMER_SRV_1_READER.Item("Artikelpreis")
    17. End While
    18. SQL_DB_CUSTOMER_SRV_1.Close()
    19. ORDER_FORM.ORDER_FORM_TB_ZWISCHENSUMME.Text = PriceCount



    Kennt einer den fehler?
    Hab es jetzt mit Verschiedenen varianten Probiert aber ich bekomme immer nur "Eine nicht behandelte Ausnahme des Typs "System.StackOverflowException" ist in System.Data.dll aufgetreten."

    SQL Syntax

    SQL-Abfrage

    1. select SUM(Artikelpreis) as Preis from WarenkorbPosition where Kundennr='" & MAIN_FORM.MAIN_FORM_STATUS_L_CID.Text & "' and Auftragsnr='" & MAIN_FORM.MAIN_FORM_STATUS_L_ORDERID.Text & "'
    In dem obigen geposteten Code steckt allerlei Wirrwar:

    - Mit Strings rechnen geht nicht
    -> Dim PriceCount As String
    -> PriceCount += SQL_DB_CUSTOMER_SRV_1_READER.Item("Artikelpreis")

    - Du deklarierst den SQL-Adapter, nutz ihn aber nicht sondern verwendest den Reader
    -> SQL_DB_CUSTOMER_SRV_1_READER.Read()

    - Public Controls aus einer anderen Form ist nicht im Sinne der OOP
    -> ORDER_FORM.ORDER_FORM_TB_ZWISCHENSUMME.Text = PriceCount

    Für mich (persönlicher Geschmack) ist die Benennung im Allgemeinen sehr unübersichtlich.
    -> SQL_DB_CUSTOMER_SRV_1_READER
    Es würde doch ganz simpel "reader" reichen. Das würde die lesbarkeit des Codes enorm erhöhen.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Dim PriceCount as String
    bedeutet du kannst auch "Kartoffeln" mit "Sauerkraut" zusammen rechnen
    wenn ich mich nicht irre müsst du das ganze als Integer oder Long deklarieren

    ORDER_FORM.ORDER_FORM_TB_ZWISCHENSUMME.Text = PriceCount ->Anstatt das ganze aus einer anderen Form zu ziehen, versuche das Ganze in eine globale Variable zu stecken und diese abzurufen.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Gelöschter Benutzer“ ()