String sql= „SELECT Vorname FROM mieter WHERE
Name like '“+Name+"’";
Hallo,
Die SQL-Anfrage sieht auf den ersten Blick o.k. aus.
-
ResultSet „weiterschalten“: Ein ResultSet gibt die Ergebnisse einer Anfrage zeilenweise bzw. Datensatz für Datensatz wieder. Direkt nach dem executeQuery steht der interne Zeiger des ResultSets „vor“ dem ersten Datensatz. D.h. man sieht noch keine Daten aus dem
Anfrageergebnis bzw. bekommt eine Exception, wenn man mit res.getString versucht, Daten zu lesen. Man muss noch die Methode res.next() aufrufen. Liefert die den Wert true zurück, dann gibt es noch ungelesene Datensätze im ResultSet und der interne Zeiger steht jetzt „auf“ dem nächsten Datensatz. Also in Ihrem Fall:
if (res.next()) {
String vorname1= res.getString(„Vorname“);
jTextField2.setText(vorname1);
}
Wenn man mehrere Datensätze als Ergebnis erwartet, kann man statt „if (res.next())“ einfach eine Schleife mit „while (res.next())“ bauen. Der ResultSet zeigt dann bei jedem Schleifendurchlauf einen neuen Datensatz aus dem Anfrageergebnis.
-
Groß-/Kleinschreibung
Auf welche Datenbank greifen Sie zu (Oracle, MySQL, Access, …) ? Bei vielen Datenbanksystemen spielen Groß- und Kleinschreibung in SQL keine Rolle. Ausnahme: Wenn Spalten einer Tabelle (Vorname, Name) beim Anlegen der Tabelle in Anführungszeichen gesetzt wurden, also „Vorname“, dann muss die Schreibweise in der Anfrage mit der Schreibweise bei der Tabellenerzeugung übereinstimmen und ebenfalls in Anführungszeichen gesetzt werden.
-
Genauere Fehlermeldung ausgeben:
}catch(SQLException e)
{
System.out.println(„Die query ist fehler
geschlagen!“);
}
Die SQL-Exception enthält einen Meldungstext, an dem man meistens erkennen kann, was das genaue Problem ist.
Also einfach statt des obigen Codes einmal folgendes versuchen
}catch(SQLException e)
{
System.out.println("Die Query ist mit folgendem Fehler fehlgeschlagen: " + e.getMessage());
}
Falls Sie aus der Fehlermeldung nicht schlau werden oder die Hinweise 1) und 2) nicht weiterhelfen, senden Sie mir einfach eine neue Anfrage mit der unter 3) ausgegebenen Fehlermeldung.
Mit freundlichen Grüßen
Michael Skusa