Proble mit Selcet mit join und rst.next()

  • Themenstarter Themenstarter Mildi
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
M

Mildi

Gast
hi leute ich hab da ein problem mit meiner sql abfrage, hab zwei Tabellen, einmal Lieferant und AdresseT mit meiner sql anweisung
Code:
SELECT *FROM Lieferant RIGHT OUTER JOIN AdresseT ON Lieferant.ID = AdresseT.ID WHERE Lieferantennummer = '"+textf+"' ;";
rufe ich alle daten aus beiden Tabellen auf. Wobei +textF+ ein String ist der an die Methode uebergeben wird.
Jetzt will ich mich ein rst.next() alle Inhalte aus dem Result heraushollen und in Strings speicher, doch genau das klappt nicht. Die SQL Anweisung stimmt auf jeden fall weil ich sie direkt aus access herauskopiert hab.

Hoffe jemand kann mir helfen. Ich kopier euch noch denn ganz Quellcode

Code:
 public void setRsL(String text)
	{	
		String textf = "%"+text+"%";
		try{
	
			String query = "SELECT *FROM Lieferant RIGHT OUTER JOIN AdresseT ON Lieferant.ID = AdresseT.ID WHERE Lieferantennummer = '"+textf+"';";
            //String query = "SELECT * FROM Lieferant, AdresseT WHERE AdresseT.ID = Lieferant.ID AND Lieferantennummer LIKE '"+textf+"';";
            //Datenbankverbindung herstellen
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            Connection con=DriverManager.getConnection( "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=G:/Users/mildi/Desktop/InMa/InmaBuchhandlung.mdb","","" );
            System.out.println("Connection Successful ");
            Statement stmt = con.createStatement();
            ResultSet rst = stmt.executeQuery(query);
            while (rst.next())
        {
        
        	Nr= rst.getString("Lieferantennummer");
        	lID = rst.getString("Lieferant.ID");
        	naL= rst.getString("Name");
        	voL = rst.getString("Vorname");
        	aID = rst.getString("AdresseT.ID");
        	plzL = rst.getString("PLZ");
        	strL = rst.getString("Strasse");
        	telL = rst.getString("Telefonnummer");
        	landL = rst.getString("Land");
        	emL = rst.getString("Email");
               
        }
            
            } catch(Exception e) {
            e.printStackTrace();
        }}
    
    public String getNr()
    {
        Nr = PNr;
        return PNr;               
    }
    public String getName()
    {
        Name = naL;
        return Name;
    }
    public String getVorname()
    {
        Vorname = voL;
        return Vorname;
    }
    public String getPLZ()
    {
        PLZ = plzL;
        return PLZ;
    }
    public String getStr()
    {
        Str = strL;
        return Str;
     }
    public String getTel()
    {
        TeleNr = telL;
        return TeleNr;
    }
    public String getLand()
    {
        Land = landL;
        return Land;
    }
    public String getEmail()
    {
        Email = emL;
        return Email;
    }
    public String getGehalt()
    {
        Gehalt = geh;
        return Gehalt;
    }
    public String getGebD()
    {
        gebDat = GebDat;
        return GebDat;
    }

Die get-methoden sind dazu da damit ich auf die daten zugreifen kann.
ich hab auch die verschieden variablen erstellt, also mit
Code:
 String naL
und so weiter ...
hab es aber nicht reinkopiert

MfG mildi
 
toll wie du von Zeile 36 bis 80 die ganzen getter postest,
wichtige Informationen,

im Gegensatz zu Fehlermeldungen oder was immer dich zu der Aussage 'geht nicht' veranlasst,
das kann man ruhig weglassen.....

WAS GEHT NICHT?

Tipp:

= 'Hallo%'
trifft nur auf Strings zu, die genau so heißen,
wenn du eine Like-Suche möchtest, dann mache
LIKE 'Hallo%' 😉
 
das ist ja das problem,ich bekomm keine Fehlermeldung.
Ich jTextField in denen ich die werte angezeigt bekommen möchte
hab das so gemacht zb

Code:
PerWerte load = new PerWerte();
jTextField1.setText(load.getName());

ich hab mal zum testen ein system.out gemacht das mir zeigen soll ob die daten ueberhaupt aus demm ResultSet herausgeholt werden und bekomm dann bei


Code:
System.out.println(load.getName());

als antwort NULL, Also denke ich das was mit demm rst.next() nicht stimmt, doch was?

Mfg Mildi
 
Tipp:

= 'Hallo%'
trifft nur auf Strings zu, die genau so heißen,
wenn du eine Like-Suche möchtest, dann mache
LIKE 'Hallo%' 😉
 
vielen Dank, die ersten 2 Daten hab ich jetzt aber ich bekomm ne fehler Meldung,
Code:
No data found

Muss mal schauen an was das liegt


MfG mildi
 
Aus der erten tabele Lieferant bekomm ich alle daten raus, bloss nicht aus der 2. AdresseT tabelle, hast du noch einen kleinen Tipp wie ich das machen kann?

Mfg mildi
 
ne, das liegt doch wohl am Aufbau der Tabellen? 😉
poste deren Create-Statement

allerdings weißt ich nicht allzu viel zu Outer-Join,
evtl noch einen neuen Thread,
dann aber nur mit SQL-Statement,
+ vielleicht paar rst.get,

nicht 100 Zeilen Code
 
ein Kommando an die Datenbank zu Erstellen der Tabelle,
alternativ kannst du auch so die einzelnen Spalten, Datentypen, Not Null-Bedingungen usw. aufschreiben
 
Also die Lieferanten Adresse sieht so aus:
------------------------------------------------------------------------
|Lieferantennummer | ID | Name | Vorname |
------------------------------------------------------------------------
| 31 | 110 | Hanz | Otte |
------------------------------------------------------------------------
als Daten Typen alles Text

Die AdresseT:
----------------------------------------------------------------------------------------------------------------------
| ID | PLZ | Strasse | Telefonnummer | Land | Email |
----------------------------------------------------------------------------------------------------------------------
| 1001 | 54875 | Torgartenallee 99 | 07444/2288 | Deutschland | held@burda.de |
----------------------------------------------------------------------------------------------------------------------
Als Datentypen auch alles Text

Hoffe ich konnt dir weiter helfen, denn ich wusste nicht was ich so recht machen sollte.

MfG mildi
 
gleich noch die Daten gepostet, gut,
damit scheint doch der Fehler offensichtlich:
zur Lieferanten-Id 110 ist keine Adressen-ID vorhanden

also findet kein Join statt, die Elemente sind korrekt null
 
ne hab jetzt alle uebrigen daten bis auch auf erste zeile gelöschte weil es sonst zu viel zeilen wären, ich gibt schon übereinstimmungen aber halt nicht bei denn 2 gezeigten datensätzen, mein fehler.

MfG mildi
 
dann solltest du
naL= rst.getString("Name");
durch
naL= rst.getString("Lieferant.Name");
ersetzen,

so ein ResultSet hat auch MetaDaten bei denen du die Spaltennamen anchschauen kannst
(getMetaData() oder so)
 
ok ich hab es, ich hab einfach eine 2 abfrage gemacht die mir die daten aus der AdresseT Tabelle rausliest und davon hab ich die daten dann rausgelesen.

vielen danke für die hilfe.

MfG mildi
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben