tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
11
ZUGRIFFE
1579
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    illaX illaX ist offline Mitglied Brokat
    Registriert seit
    Jan 2004
    Ort
    Konstanz
    Beiträge
    268
    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

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

    Danke fuer Hilfe.

    MfG
    illaX
     

  2. #2
    illaX illaX ist offline Mitglied Brokat
    Registriert seit
    Jan 2004
    Ort
    Konstanz
    Beiträge
    268
    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.
     

  3. #3
    torsch2711 torsch2711 ist offline Mitglied Brokat
    Registriert seit
    Oct 2004
    Ort
    Hessen
    Beiträge
    310
    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
     
    "There's nothing we have to fear, except Fear itself....."

  4. #4
    illaX illaX ist offline Mitglied Brokat
    Registriert seit
    Jan 2004
    Ort
    Konstanz
    Beiträge
    268
    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.
     

  5. #5
    torsch2711 torsch2711 ist offline Mitglied Brokat
    Registriert seit
    Oct 2004
    Ort
    Hessen
    Beiträge
    310
    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
     
    "There's nothing we have to fear, except Fear itself....."

  6. #6
    Avatar von Bernd1984
    Bernd1984 Bernd1984 ist offline Kastenbrot
    Registriert seit
    Oct 2004
    Beiträge
    414
    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 :
    1
    
    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 :
    1
    
    System.out.println(strQuery);
    Diese Ausgabe kannst du dann auch direkt in der Datenbank testen.
     
    Gruss Bernd
    Zitat Zitat von mAu
    * Unformatierten Quellcode schaue ich mir _nicht_ an!
    * Sollte ich euch bei einer Frage weitergeholfen haben, würde ich mich über eine positive Bewertung freuen.
    * Bitte die Netiquette beachten.
    * Vergesst nicht, beantwortete Fragen als erledigt zu markieren!

  7. #7
    illaX illaX ist offline Mitglied Brokat
    Registriert seit
    Jan 2004
    Ort
    Konstanz
    Beiträge
    268
    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]
    Geändert von illaX (23.03.05 um 13:03 Uhr)
     

  8. #8
    Avatar von Bernd1984
    Bernd1984 Bernd1984 ist offline Kastenbrot
    Registriert seit
    Oct 2004
    Beiträge
    414
    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.
     
    Gruss Bernd
    Zitat Zitat von mAu
    * Unformatierten Quellcode schaue ich mir _nicht_ an!
    * Sollte ich euch bei einer Frage weitergeholfen haben, würde ich mich über eine positive Bewertung freuen.
    * Bitte die Netiquette beachten.
    * Vergesst nicht, beantwortete Fragen als erledigt zu markieren!

  9. #9
    illaX illaX ist offline Mitglied Brokat
    Registriert seit
    Jan 2004
    Ort
    Konstanz
    Beiträge
    268
    Tut mir leid das ich erst so spaet antworte, aber ich war ueber Ostern nicht da.

    auf wunsch noch ein wenig mehr Quelltext:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
                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.
    Geändert von illaX (31.03.05 um 07:46 Uhr)
     

  10. #10
    illaX illaX ist offline Mitglied Brokat
    Registriert seit
    Jan 2004
    Ort
    Konstanz
    Beiträge
    268
    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
     

  11. #11
    Avatar von teppi
    teppi teppi ist offline Mitglied Platin
    Registriert seit
    May 2004
    Ort
    Berlin
    Beiträge
    537
    Moin,

    Liegt wahrscheinlich daran, dass du zwei Stringobjekte miteinander vergleichst ?! Dann vergleichst du nämlich, ob es tatsächlich die gleichen Objekte sind .. Sie liegen aber in unterschiedlichen Speicherbereichen, haben damit unterschiedliche Referenzen und sind es deshalb nicht.

    Da gibt es dann die spezielle Methode String.equals(), um ihren eigentlichen Inhalt zu vergleichen ..

    Gruß Stefan
    Geändert von teppi (31.03.05 um 08:29 Uhr)
     
    :-) möp

  12. #12
    illaX illaX ist offline Mitglied Brokat
    Registriert seit
    Jan 2004
    Ort
    Konstanz
    Beiträge
    268
    Ja tausend Dank teppi. Es waren zwar keine String Objekte, aber ich habe es jetzt so gemacht und es funktioniert


    MfG
    illaX
     

Ähnliche Themen

  1. Letzten Eintrag suchen
    Von FrankWST im Forum Relationale Datenbanksysteme
    Antworten: 6
    Letzter Beitrag: 19.11.09, 13:58
  2. VBA neuen Eintrag suchen
    Von deen_90 im Forum Visual Basic 6.0
    Antworten: 0
    Letzter Beitrag: 17.01.08, 13:32
  3. VB 2005 - ListView-Eintrag suchen
    Von codeman im Forum .NET Windows Forms
    Antworten: 2
    Letzter Beitrag: 09.08.06, 18:17
  4. Eintrag in Dropdownliste suchen lassen
    Von steffi1985 im Forum VisualStudio & MFC
    Antworten: 1
    Letzter Beitrag: 30.05.05, 14:44
  5. Antworten: 33
    Letzter Beitrag: 08.07.04, 11:03