Datenbank (Eintrag suchen)

illaX

Erfahrenes Mitglied
Hi,

ich moechte gerne eine Suche erstellen.

Ich suche nur ueber ein Attribut, dass steht in einem JTextField.

Habe erfahren das in java mit sql Befehlen gesucht werden kann. Ich habe auch einige Beispiele geufunden, aber ich bekomme es nicht hin.

Da ich ueberhaupt nicht weiss wie ich mein Problem angehen soll, bitte ich hier um Hilfe :D

Dies ist ein Beispiel von meinen gescheiterten versuchen :D
Code:
            String strQuery = "SELECT Name FROM Mitarbeiter WHERE Mitarbeiter.Name = strName));";
            rs = statement.executeQuery(strQuery);

Danke fuer Hilfe.

MfG
illaX
 
Ich weiss auch nicht, ob dies der richtige Weg ist. ZB. SELECT benoetige ich gar nicht. Habe leider auch noch nie mit sql gearbeitet.

Der gesuchte Datensatz wird in JTextField wieder ausgegeben.
 
Hmmm, also ich würd meinen String doch eher so zusammenbauen:

JTextField textfeld=new JTextField(8);
..
..
..
String mein_neuer_suchstring="SELECT name FROM ......... WHERE Mitarbeiter.Name="+textfeld.getText();

rs.executeQuery(mein_neuer_suchstring);

Damit erreichst du das geforderte, was Du nämlich machst ist alles ausgeben was als Name strName hat und das ist ja so nicht richtig, bzw. du bekommst nix zurück, ausser es heisst zufälligerweise jemand strName ;)

Gruss

Torsten
 
Habe deins ausprobiert und da kommt die Meldung:
[Microsoft][ODBC Microsoft Access Driver] 1 Parameter wurden erwartet, aber es wurden zu wenig Parameter übergeben.

Also ich gebe den Namen, den ich suche ein und wenn es ihn gibt soll der pointer(ResultSet) an der Stelle stehen. So kann ich dann auch die anderen Daten von ihm in den Textfeldern ausgeben.
 
Lass dir mal bitte den String ausgeben.

Nimm diesen String und setz ihn mit einem SQL Tool auf deine DB ab.

Im Übrigen kann es sein, dass Du den zu suchenden teilstring in anführungszeichen setzen.


Gruss
Torsten
 
Hallo,

diese Meldung bedeutet, das der SQL nicht vollständig ist z.B. dass textfeld.getText() keinen Inhalt hat.

Die Variable sollte in Hochkomma's stehen:
Code:
String strQuery = "SELECT Name FROM Mitarbeiter WHERE Mitarbeiter.Name = '"+textfeld.getText()+"'";
Ausserdem solltest du die auch mal die Variable strQuery ausgeben lassen bzw. hier posten:
Code:
System.out.println(strQuery);
Diese Ausgabe kannst du dann auch direkt in der Datenbank testen.
 
Also strQuery:
SELECT Name FROM Mitarbeiter WHERE Mitarbeiter.Name= 'Hesse'

Hesse habe ich ins TextField eingegeben.

Jetzt meldet er mir:
java.sql.SQLException: [Microsoft][ODBC Driver Manager] Invalid cursor state

Ich habe dann den ResultSet auf first() gesetzt, aber die Meldung kommt immer noch.

MfG
illaX

[Edit] In der Datenbank funktioniert die Abfrage aus strQuery [/EDIT]
 
Zuletzt bearbeitet:
Hallo,

der Fehler tritt aber doch nicht beim Select auf, sondern später, oder ?

Du solltest evtl. ein wenig mehr Code posten (und auch die Stelle markieren, wo der Fehler auftritt), da es sonst ziemlich schwierig ist den Fehler zu finden.
 
Tut mir leid das ich erst so spaet antworte, aber ich war ueber Ostern nicht da.

auf wunsch noch ein wenig mehr Quelltext:
Code:
            String strName = tfName.getText();
            int tmp = rs.getRow();
            int meldung = 0;
            rs.first();
            rs.next();
            
            String strQuery = "SELECT Name FROM Mitarbeiter WHERE Mitarbeiter.Name= '"+tfName.getText()+"'";
            System.out.println(strQuery);
            rs = statement.executeQuery(strQuery);

Er meldet immer noch Invalid cursor state

MfG
illaX

[edit] das rs.next(); ist nur zu Testzwecken drin.
 
Zuletzt bearbeitet:
Ich habe auch den String von meinem TextField mit den Strings aus meiner Datenbank vergleicht.
Er erkennt nicht, das der String "Hesse" aus dem TextField mit dem String "Hesse" aus der Datenbank gleich ist. (!)

Aber warum? Ich habe auch beide ausgegeben und dann mit if ueberprueft ob sie gleich sind.

MfG
illaX
 
Zurück