# Anzeige Button gibt immer nur 1. Datensatz aus DB aus



## Java Spinner (28. Mai 2007)

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 )
		{}
}


----------



## SlaterB (28. Mai 2007)

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


----------



## Java Spinner (28. Mai 2007)

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 .....


----------



## SlaterB (28. Mai 2007)

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


----------



## Java Spinner (28. Mai 2007)

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.


----------



## Guest (28. Mai 2007)

mmh hab grad was vergessen  natürlich muss der SQL so lauten
     s.append("SELECT dvd.regisseur, dvd.spielzeit FROM dvd WHERE title=");


----------



## SlaterB (29. Mai 2007)

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


----------



## Java Spinner (29. Mai 2007)

```
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?


----------



## SlaterB (29. Mai 2007)

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   )


----------

