Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Java » Per Benutzereingabe Access DB durchsuchen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
17.03.2009, 18:00 Uhr
KFC Embryo
Ein Huhn


Hallo,

ich habe mittels Netbeans eine Connection zur einer Access Datenbank gesetzt.
Dann habe ich eine Form erstellt in der es die Möglichkeit gibt die Datenbank zu durchsuchen. Und man die Ergebinsse angezeigt bekommt. Desweiteren gibt es einen Ok Button der den ausgewählten Eintrag zurück gibt und einen Abrechen Button der die Aktion beendet.

Jetzt soll ein life search erstellt werden: Das heißt wenn man z.B. in das Suchfeld den string, "Te" eingibt. Sollen alle Einträge angezeigt werden die mit "Te" beginnen.

Wie könnte sowas Programm technisch aussehen?
Gibt es eventuell schon ein solches Programm? In dem ich nur noch den Pfad zur DB angeben muss?

Gruß
--
An nescis, mi fili, quantilla prudentia mundus regatur?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
17.03.2009, 21:00 Uhr
0xdeadbeef
Gott
(Operator)


Du hast da ne Datenbank, also solltest du die Abfragen. In etwa:

SQL:

SELECT name FROM eintraege WHERE name LIKE 'Te%';


...nur halt mit deinen Variablen drin.

Allerdings...Access ist kein wirklich sicheres Datenbankbackend, und (aber!) wenn du es sowieso schon benutzt, warum klickst du dir dann nicht damit eine GUI zusammen?
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
17.03.2009, 23:01 Uhr
KFC Embryo
Ein Huhn


Hallo,

hier mit dem Quellcode wird es klarer was ich machen möchte:


Code:
package GUI;
import java.sql.*;

public class NewClass
{
  public static void main(String argv[])
  {
    Connection dbVerbindung=null;
    Statement sqlStatement=null;
    String sqlString="SELECT * FROM tab";
    ResultSet resultSet=null;
    try
    {
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
      System.out.println("Treiber erfolgreich geladen...");
    }
    catch(ClassNotFoundException e)
    {
      System.out.println("Fehler beim Laden des Treibers"+e);
      System.exit(0);
    }
    try
    {
    dbVerbindung = DriverManager.getConnection("jdbc:odbc:db1","","");
    System.out.println("Verbindung erfolgreich...");
    }
    catch(SQLException e)
    {
      System.out.println("DB-Verbindungsfehler: "+e);
      System.exit(0);
    }
    try
    {
       sqlStatement = dbVerbindung.createStatement();
       System.out.println("SQL-Statement erzeugt...");
       resultSet = sqlStatement.executeQuery(sqlString);
       while(resultSet.next())
       System.out.println(resultSet.getString(1)+"\t"+resultSet.getString(2)+"\t"+resultSet.getDate(3));
       resultSet.close();
       System.out.println("resultSet-Objekt geschlossen...");
       sqlStatement.close();
       System.out.println("sqlStatement-Objekt geschlossen...");
       dbVerbindung.close();
       System.out.println("Verbindung geschlossen...");
    }
     catch(SQLException e)
     {
       System.out.println("Fehler beim DB-Zugriff!"+e);
       System.exit(0);
     }
   }
}



Jetzt möchte ich nicht alles ausgeben sonder nur das was im Suchfeld steht.
Wie kann ich denn das "jTextField" Zeichenweise auslesen? Und zur gleichen Zeit die gefundenen Ergebnisse in einem Frame auflisten?

Ich müsste doch rein theoretisch nach jedem neuen Zeichen das ich eingebe eine DB Suche machen und eine Aktualisierung von der Ausgabe oder?
Wenn ja wie sieht so was Programm technisch aus? Oder wo kann ich mich speziell zu diesem Thema informieren?

Danke gruß
--
An nescis, mi fili, quantilla prudentia mundus regatur?

Dieser Post wurde am 17.03.2009 um 23:03 Uhr von KFC Embryo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
17.03.2009, 23:25 Uhr
mmc20
puss in boots


hi,
naja wie beefy ja schon erwähnte

musst du eigentlich nur die richtige abfrage an die db schicken


Code:
// hier den string anpassen
    String sqlString="SELECT * FROM tab WHERE name LIKE 'Te%'";
...
// dieser wird ja dann weiter unten gesendet
       resultSet = sqlStatement.executeQuery(sqlString);
       while(resultSet.next())
              System.out.println(resultSet.getString(1)+"\t"+resultSet.getString(2)+"\t"+resultSet.getDate(3));



fertig.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
22.03.2009, 15:11 Uhr
KFC Embryo
Ein Huhn


Hallo,

eine Frage habe ich noch:


Code:
statement.executeQuery("SELECT * FROM Stichwortliste WHERE stichworte LIKE '"+abfrage+"'");



Dieser Ausdruck liefert mir kein Ergebnis, wenn in der Variable "abfrage" nur ein a oder b etc. drin steht.
Er liefert mir eine Ausgabe wenn in der Variable "abfrage" ein Ausdruck drin steht wie Bitdefender oder blitzbox.de.
(Bitdefender und blitzbox.de sind Namen in der Tabelle stichworte)

Es soll aber immer nach den bereits vorhandenen Buchstaben gesucht werden.

Danke


EDIT: Habe deine Variante probiert dort zeigt er mir in beiden fällen nichts.
--
An nescis, mi fili, quantilla prudentia mundus regatur?

Dieser Post wurde am 22.03.2009 um 15:13 Uhr von KFC Embryo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
22.03.2009, 15:55 Uhr
KFC Embryo
Ein Huhn


Hat sich erledigt ich habs:


Code:
("SELECT stichworte FROM Stichwortliste WHERE stichworte LIKE '"+abfrage+"%'");



Trotzdem Danke

gruß
--
An nescis, mi fili, quantilla prudentia mundus regatur?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
24.03.2009, 22:24 Uhr
virtual
Sexiest Bit alive
(Operator)


Bitte Benutze PreparedStatements.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Java ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: