Anzeige Button gibt immer nur 1. Datensatz aus DB aus

  • Themenstarter Themenstarter Java Spinner
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
J

Java Spinner

Gast
Hallo ich bin gerade dabei ein Medienprogramm zu schreiben und jetzt steh ich vor folgenden Problem ich möchte in meiner Gui wenn ich da im Textfeld namens Titel einen Film eingebe und anschließend auf anzeigen klicke wird mir immer nur der erste Datensatz aus meiner DB geliefert z.b :
Mein 1. Satz ist Lost, Jahr 2004, 45 min
Mein 2 Satz ist Bad Boys2 2003 120 min

und wenn ich Bad Boys eintippe dann wird mir immer der Inhalt vom 1 .Satz ( immer Lost Informationen) angezeigt vl weis da jemand wo mei Fehler is: der code heißt folgend: Bin für jede hilfe dankbar!

public void anzeigen()

{



try {
StringBuffer s = new StringBuffer();
s.append("SELECT dvd.regisseur, dvd.spielzeit FROM dvd ");
//s.append("SELECT cd.interpret, cd.tracks FROM cd ");


Statement statement = Datenbank.con.createStatement();
ResultSet rs = (ResultSet) statement.executeQuery(s.toString());

if ( rs.next())
{
BenutzerGUI.regisseurInterpretEingabe.setText(rs.getString(1));
BenutzerGUI.spielzeitTrackEingabe.setText(rs.getString(2));

}
else {}


//BenutzerGUI.ergebnisliste.setText("Hier werden die Details ausgegeben:"+'\n'+ suchbegriff);




}
catch (Exception ex )
{}
}
 
wieso Fehler, du liest den ersten Datensatz aus und zeigst ihn an, fertig,

in der DB-Anfrage berücksichtigst du keine Eingaben ('wenn ich Bad Boys eintippe') oder auch mehrere Ergebnisse,
das klammerst du alles aus,

ist deine Frage nun wie du die DB-Anfrage richtig formulierst?

---------

wichtiger Tipp: wenn du von allem wenig Ahnung hast,
dann kombiniere nicht unbekannte GUI mit unbekannte DB-Anbindung!

übe DB-Anfragen mit System.out.println und ähnlich einfachen Mitteln,
dann musst du dir über eine fehlerhafte Anzeige keine Sorgen machen

und übe GUI-Erstellung mit String-Testdaten,
dann musst du dir über ungewissen Datenquellen keine Sorgen machen
 
Mmh also wenn ich Daten in meine DB (Tabelle CD und DVD) einfügen möchte geht das einwandfrei aber wie gesagt wenn ich unter DVD was eingebe wird immer nur der erste Datensatz aus meiner DB ausgegeben und das is immer Lost mmh i weis net wo da der Fehler am Code liegen soll? Was müsste ich denn änder n damit die DB mir zu jedem Titel den ich eingebe die richtigen Informationne liefert BAd boys => Bad Boys informationnen, Lost => Lost informationen und .....
 
du wunderst dich wirklich, warum
'SELECT dvd.regisseur, dvd.spielzeit FROM dvd'
nicht genau die DVD Bad Boys liefert?

und zu einem anderen Zeitpunkt soll
'SELECT dvd.regisseur, dvd.spielzeit FROM dvd'
wie von Zauberhand Lost zurückgeben?

also das ist mir auch zu hoch, Java ist wohl doch keine Wundertüte,
vielleicht etwas in Richtung

SELECT dvd.regisseur, dvd.spielzeit FROM dvd where name LIKE '%Bad Boys%'
??

oder wie auch immer man die DVD näher bestimmen könnte 😉
 
mmh i glaub i versteh das nicht so wirklich weil mit dem SQL Befehl SELECT * FROM dvd müsse es doch egal sein was für en titel ich eintippe um diesen anzeigen zu lassen.
 
mmh hab grad was vergessen natürlich muss der SQL so lauten
s.append("SELECT dvd.regisseur, dvd.spielzeit FROM dvd WHERE title=");
 
da hast du Recht, so klingt das schon besser, aber das ist natürlich noch kein vollständiges SQL,
willst du jetzt hier bis ins Detail eine einzelne Anfrage diskutieren?

dann solltest du schleunigst auf den Punkt kommen und konkrete Fragen stellen,
ewig spiele ich nicht mit 😉
 
Code:
String beispiel = BenutzerGUI.suchenEingabe.getText();
 query_str =  "SELECT  dvd.regisseur, dvd.spielzeit From dvd WHERE title= beispiel";
beispiel kann mit system.out.... ausgegeben werden, der string wird geholt.

konkrete Fragen: warum greift er nicht auf die variable "beispiel" zu in der sql anweisung?
 
weil String nicht zaubern kann,
woher soll String/ Java wissen, ob den den Inhalt der Variablen
(der zur Laufzeit vielleicht gar nicht mehr bekannt ist)
oder buchstäblich 'beispiel' haben möchtest?

dafür bist du als Programmier da, dafür gibt die Java-Syntax beide Möglichkeiten vor,
schreibe also ganz normal (wie bei JEDEM String-Aufbau)

query_str = "SELECT dvd.regisseur, dvd.spielzeit From dvd WHERE title= "+beispiel;

natürlich solltest du den Namen noch in Hochkommata einbinden um die SQL-Syntax einzuhalten,
vielleicht vorher gar SQL anschauen/ lernen(sorry 😉 )
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben