2017-05-26 2 views
0

Ich versuche, einen Weg zu finden, "alle Klassen von einem ausgewählten Datum zu einem anderen zu sammeln, von einem bestimmten Lehrer verwaltet", und bis jetzt geht es in Ordnung. Ich habe Großbuchstaben benutzt, um sie mit einem Großbuchstaben als dem ersten im Namen zu vergleichen ... aber da einige Lehrer (McGonnagal) zum Beispiel Großbuchstaben in ihrem Nachnamen haben, gibt es einen Weg zu sagen, die Eingabe zu bekommen Kleinbuchstaben, und übertragen Sie auch die Daten in der Datenbank (McGonnagal) alle in Kleinbuchstaben?tauschen Sie Benutzereingabe und Datenbank in Kleinbuchstaben vor dem Vergleich

So wäre es immer ein Spiel sein, auch wenn der Benutzer McGoNNaGal in dem Programm eingefügt .... jemand eine Idee hat? `

try { 

     String lararesNamn = txtLoCLarare.getText(); 
     String LFN = lararesNamn.toUpperCase().charAt(0)+lararesNamn.substring(1); 
     String datumFrom = txtLoCfom.getText(); 
     String datumTom = txtLoCtom.getText(); 
     String lararesEN = txtLarareEN.getText(); 
     String LEN = lararesEN.toUpperCase().charAt(0)+lararesEN.substring(1); 
     ArrayList<HashMap<String,String>> listOfClasses = databas.fetchRows("SELECT KURSNAMN FROM KURS JOIN LARARE ON KURSLARARE = LARAR_ID WHERE KURSSTART >= " + "'" + datumFrom + "'" + " AND KURSSLUT <= " + "'" + datumTom + "'" + " AND(LARARE.FORNAMN = " + "'" + LFN + "'" + " AND LARARE.EFTERNAMN = " + "'" + LEN + "'" + ")"); 
       System.out.println(listOfClasses); 
       JOptionPane.showMessageDialog(null, listOfClasses); 
    } catch(InfException ex){ 
     System.out.println(ex.getMessage()); 
}           

Mit freundlichen Grüßen!

+0

Welche Datenbank verwenden Sie? –

+0

firebird Datenbank – hw17

Antwort

0

Sie können den abgerufenen Namen von SQL DB in Groß- oder Kleinschreibung konvertieren. Ändern Sie für UNTEREN Fall Ihre Abfrage auf.

SELECT KURSNAMN FROM KURS JOIN LARARE ON KURSLARARE = LARAR_ID WHERE KURSSTART >= " + "'" + datumFrom + "'" + " AND KURSSLUT <= " + "'" + datumTom + "'" + " AND(LOWER(LARARE.FORNAMN) = " + "'" + LFN + "'" + " AND LOWER(LARARE.EFTERNAMN) = " + "'" + LEN + "'" + ")" 

können Sie verwenden UPPER-Funktion für Großbuchstaben

+0

danke! Ich werde es ausprobieren. Kennen Sie eine Möglichkeit, eine Ausgabe zu erhalten, wenn die Variable nicht in der Datenbank übereinstimmt? jetzt verwende ich "JOptionPane.showMessageDialog (null, listOfClasses);" , aber wenn "listOfClasses" leer ist, möchte ich "no match found" sagen. – hw17

Verwandte Themen