Wert aus Datenbank in Variablen abspeichern



  • Hey,
    Ich habe mir ein Programm zum festhalten meiner Schulnoten programmiert, dass aus einer Datenbank (für jedes Fach) besteht.
    Ich möchte gerne meine Durchschnittsnote in jedem Fach errechnen und diese in einer Variablen abspeichern.
    Dafür brauche ich die Anzahl der Spalten in der jeweiligen Tabelle und die Noten die in der Spalte "Punkte" stehen.

    Das Problem ist, dass ich nicht den Hauch einer Ahnung aheb, wie das funktioniert.
    Ich arbeite momentan mit Visual C# 2010.

    Danke für die Hilfe.
    Ein Code oder Ansatz währe nett.



  • Hallo,

    erst mal, was für eine Datenbank verwendest du?
    und zweitens, du hast doch hoffentlich nicht, wie ich zumindest es herauslese, für jedes Fach eine eigene Datenbank eingerichtet?



  • erst mal, was für eine Datenbank verwendest du?

    Eine "Dienstbasierte Datenbank" oder Microsoft SQL Server DatenbankDatei...
    So steht es dort.

    und zweitens, du hast doch hoffentlich nicht, wie ich zumindest es herauslese, für jedes Fach eine eigene Datenbank eingerichtet?

    Nein, natürlich nicht!
    Ich habe nur eine Tabelle für jedes Fach



  • D.J. schrieb:

    Nein, natürlich nicht!
    Ich habe nur eine Tabelle für jedes Fach

    Gar nicht gut. Du solltest eine Tabelle für alle Noten haben. Die Tabelle hat dann eine Spalte "Fach". Um die Durchschnittsnote zu berechnen kannst Du einfach das Statement

    select avg(note) from noten
    

    ausführen.



  • Select avg(Punkte)from database1DataSet.Fach;
    

    Das funktioniert irgendwie nicht.
    Oder wie hast du das genau gemeint mit "select avg(note) from noten" ?



  • Wie genau geht das?

    Einfach so.

    Tip: Die Antwort ist genau so spezifisch wie deine Frage.
    Stell ordentliche Fragen (d.h. beschreib u.A. was du probiert hast, und was genau nicht geht, und was "geht nicht" überhaupt bedeutet), dann wirst du meist auch ordentliche Antworten bekommen.



  • Stell ordentliche Fragen (d.h. beschreib u.A. was du probiert hast, und was genau nicht geht, und was "geht nicht" überhaupt bedeutet), dann wirst du meist auch ordentliche Antworten bekommen.

    Würde ich gerne, wenn ich eine Ahnung von Datenbanken hätte.

    Ich habe jetzt eine paar Versuche mit dem sog. "Statement" 'select avg(note) from noten' gemacht; hat aber leider nichts geklappt.



  • D.J. schrieb:

    Ich habe jetzt eine paar Versuche mit dem sog. "Statement" 'select avg(note) from noten' gemacht; hat aber leider nichts geklappt.

    Und wie wäre es wenn du uns wissen lässt wie diese Versuche ausgesehen haben, und wie das "nicht Klappen" ausgesehen hat?

    Das SELECT Statement selbst ist auf jeden Fall richtig (vorausgesetzt es gibt eine passende Tabelle "noten") -- woher sollen wir also wissen was du falsch machst?

    Das hat auch mit "keine Ahnung von Datenbanken haben" nichts zu tun. Hier geht es um "keine Ahnung haben wie man Fragen stellt".



  • Also es gibt von einem Database1DataSet.xsd mehrere Tabellen die jeweils den Fachnamen tragen, also "Deutsch" z.B.

    D.h. ich muss jetzt einfach bei

    From1_Load()
    { select avg(note) from Database1DataSet.Deutsch}
    

    eingeben um den Durchschnittswert der Tabellenspalte "Note" zu erhalten.

    So habe ich das auf jeden Fall verstanden und umgesetzt, jedoch erfolglos;
    Mit folgender Fehlermeldung

    Fehler	1	";" oder "=" erwartet. (Konstruktorargumente können nicht in einer Deklaration angegeben werden.)	C:\Users\....\Desktop\Programmieren\C#\Punkte Calculator\Library\Library\Form1.cs	114	22	Library
    Fehler	2	; erwartet.	C:\Users\....\Desktop\Programmieren\C#\Punkte Calculator\Library\Library\Form1.cs	114	29	Library
    Fehler	3	Ungültiger Ausdruck ".".	C:\Users\....\Desktop\Programmieren\C#\Punkte Calculator\Library\Library\Form1.cs	114	50	Library
    Fehler	4	; erwartet.	C:\Users\....\Desktop\Programmieren\C#\Punkte Calculator\Library\Library\Form1.cs	114	50	Library
    Fehler	5	; erwartet.	C:\Users\....\Desktop\Programmieren\C#\Punkte Calculator\Library\Library\Form1.cs	114	51	Library
    


  • Du hast nicht nur keine Ahnung von Datenbanken, sondern auch von der Programmiersprache. Beschäftige dich erstmal ein halbes Jahr damit, dann kannst du das Problem vielleicht noch mal angehen. Aber so wie es aussieht, bist du noch so ziemlich bei 0 und willst dass wir dir alles komplett erklären.



  • Ich habe nicht 0 Ahnung.
    Bloß in C# etwas weniger.

    Das einzige, dass ich will ist mir diese kleine Datenbank zu programmieren, was ich nie wieder machen werde und dazu brauche ich nur eine Codezeile Hilfe.



  • Das ist nicht eine Codezeile. Du schreibst SQL mitten in ein C# Programm. Es müsste dir eigentlich klar sein, dass es nicht funktionieren kann, in keiner Sprache. Spätestens wenn sich der Compiler beschwert, sollte dir aufgehen, dass du was komplett falsch machst. Wenn man überhaupt auf die Idee kommt, sowas hinzuschreiben, behaupte ich mal, dass man 0 Ahnung hat.
    Grobes Schema, wie man in .NET auf eine Datenbank zugreifen könnte. Passende DbConnection erstellen (gibt für verschiedene Datenbanken Ableitungen), dann z.B. DataAdapter erstellen, der bekommt deinen SQL Befehl als String, dann über den DataAdapter (gibt auch Ableitungen, z.B. SqlDataAdapter) eine DataTable füllen. Gibt noch tausend Möglichkeiten (auch "bessere") auf Datenbanken zuzugreifen, aber das lernst du dann vielleicht mit der Zeit. Die paar Begriffe die ich genannt habe, sollten zum Suchen reichen.



  • Danke



  • D.J. schrieb:

    Ich habe nicht 0 Ahnung.
    Bloß in C# etwas weniger.

    Das ist gut. Nicht 0 Ahnung sondern etwas weniger. Also etwas weniger als gar nichts 😃 . Das sind natürlich schlechte Voraussetzungen um das Problem zu lösen.



  • Das ist gut. Nicht 0 Ahnung sondern etwas weniger. Also etwas weniger als gar nichts 😃 . Das sind natürlich schlechte Voraussetzungen um das Problem zu lösen.

    Nein ich hab nicht etwas weniger als 0 gemeint 😃
    Sondern in C# habe ich nich sooooo viel Ahnung.



  • D.J. schrieb:

    Das ist gut. Nicht 0 Ahnung sondern etwas weniger. Also etwas weniger als gar nichts 😃 . Das sind natürlich schlechte Voraussetzungen um das Problem zu lösen.

    Nein ich hab nicht etwas weniger als 0 gemeint 😃
    Sondern in C# habe ich nich sooooo viel Ahnung.

    Dann nimm doch für den Datenbankzugriff die Sprache mit der du am besten zurecht kommst! z.B. C++ mit SQL


Log in to reply