Aggregatfunktion Ergebnis ausgeben

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Aggregatfunktion Ergebnis ausgeben

    Hi,

    ich bin grad dabei einige SQL-Befehle auszuprobieren (Ich benutze ein Access-Datenbank)
    Leider habe ich ein Problem mit Aggregatfunktionen.
    Wie bekomme ich jetzt den Durchschnitt ausgegeben??
    Kann man da Variablen verwenden?

    VB.NET-Quellcode

    1. cmd.CommandText = "select avg(gehalt) from personen"

    VB.NET-Quellcode

    1. lstTab.Items.Add(????)


    Gruß
    Austro
    Bevor du dich ins Sql stürzt, sollteste die client-seitige Daten-haltung und -Verarbeitung in .Net erlernen.
    Sql findet ausserhalb von VB.Net statt, und ist dadurch prinzipiell extrem umständlich und fehleranfällig anzuwenden.

    Dabei gibts innerhalb von VB dieselben Methoden (nämlich der Linq-Namespace), und die genießen die volle Unterstützung von Compiler und Intellisense.

    es gibt also 2 Probleme beim rumspielen mit sql
    1. du brauchst es nicht, weil die sichere und unterstützte Alternative ist ja immer vorzuziehen
    2. die erhobenen Daten sind nicht kompatibel mit einer effizienten client-seitige Daten-haltung und -Verarbeitung.
      guggemol die Sample-Solution von "Datenbank in 10 Minuten" auf Movie-Tuts
      versuche, so eine Oberfläche mal mit Sql-Gefummel hinzukriegen - das Sample braucht glaub unter 20 Zeilen, um die Standard-Anforderungen an eine Datenverarbeitung: Laden, Speichern, Ändern, Zufügen, Löschen vollständig abzudecken.
    ganz einfach:

    Abfrage:

    SQL-Abfrage

    1. SELECT AVG(gehalt) AS Durchschnitt FROM Personen


    also du gibst mit AS der Spalte den Namen Durchschnitt.

    du brauchst noch nen SQLDataReader heißt der so weit ich weis, der liest dann deine Antwort vor sozusagen.

    Dann weist du diesem (dem reader) dein commando.ExcecuterReader() zu


    VB.NET-Quellcode

    1. Dim reader As SqlDataReader = cmd.ExecuteReader()



    (muss so ähnlich heißen)

    damit führst du die Abfrage aus....

    und jetzt machst du einmal

    VB.NET-Quellcode

    1. reader.read()



    also dein reader springt in die erste Zeile

    und mittels

    VB.NET-Quellcode

    1. reader("Durchschnitt")



    bekommst du den Wert der in der Spalte Durchschnitt steht, da nur einer drin steht bist du ja auch schon fertig




    Ach ja und das ist die total normale Art Daten abzufragen, und wenn man SQL kann sind sie auch kompatibel!

    SilentHacK schrieb:

    Ach ja und das ist die total normale Art Daten abzufragen, und wenn man SQL kann sind sie auch kompatibel!
    Es ist eine verbreitete Krankheit, also in dem Sinne schon "normal".
    Wie gesagt, es ist ein Holzweg, der einem die Möglichkeiten einer tragfähigen Architektur verbaut.

    Auch dir:

    ErfinderDesRades schrieb:

    guggemol die Sample-Solution von "Datenbank in 10 Minuten" auf Movie-Tuts
    versuche, so eine Oberfläche mal mit Sql-Gefummel hinzukriegen - das Sample braucht glaub unter 20 Zeilen, um die Standard-Anforderungen an eine Datenverarbeitung: Laden, Speichern, Ändern, Zufügen, Löschen vollständig abzudecken.
    wieviele Zeilen brauchst du? (schaffst du es ühaupt?)
    kann ich auch, (das wird ja durch vernünftige Architektur nicht verhindert).
    Brauche ich aber nicht, denn mit Linq stehen mir die wichtigsten Abfrage-Elemente auch im Kontext von VB zur Verfügung.
    Du aber kannst vmtl. nichtmal sone Simpel-Anwendung basteln, wie sie dem Tut beiliegt.

    (Ich weiß, ich provoziere :evil: . Aber ich würde wirklich gerne mal sehen, wie man sowas ohne Databinding hinbekäme, und wie das dann aussähe)