2016-05-12 11 views
-1

Ich möchte meine volle Ergebnismenge in meinem JTxtField angezeigt bekommen, aber ich weiß nicht, wie es geht.get ResultSet in JTxtField

Dies ist mein Code Im Moment:

try{ 
     Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
     conn3 =  DriverManager.getConnection("jdbc:sqlserver://ARTURO-LAPTOP;user=sa;password=sacompusis;database=PDV"); 
     st3 = conn3.createStatement(); 
     rs3= st3.executeQuery("SELECT Nombre_Pdv, SUM(Total) AS Expr1 FROM VENTA_PLATILLOS GROUP BY Nombre_Pdv"); 

     while(rs3.next()){ 
      txt.setText(rs3.getString(1)); 
     } 

    } 
    catch(Exception e){ 
     e.printStackTrace(); 
    } 

jedoch nur das gibt mir die erste Saite des Suchresultates, wie kann ich das vollständige Ergebnis eingestellt werden?

+0

JTextField unterstützt nicht mehrere Zeilen. Vielleicht möchten Sie sich JTextArea ansehen. –

+0

Haben Sie versucht, Methode toString – GlacialMan

+0

@ A.Sharma Sie haben Recht, aber er kann alle Ergebnisse in einer Zeile des Textes – GlacialMan

Antwort

4

Ihre while-Schleife kann viele Zeichenfolgen auf das JTextField setzen, aber nur eines wird angezeigt - das letzte wird als JTextField-Text festgelegt, da es den zuvor hinzugefügten Text überschreibt.

Wenn Sie alle Strings in der JTextField zeigen müssen, erstellen Sie ein Stringbuilder-Objekt, und innerhalb der while-Schleife, anhängen der ResultSet Text, den Sie in die Stringbuilder, und dann nach der while-Schleife, verwenden Sie die toString() aus der StringBuilder als Text für das JTextField. z.B.

StringBuilder sb = new StringBuilder(); 
while(rs3.next()){ 
    sb.append(rs3.getString(1) +"; "); 
} 
txt.setText(sb.toString()); 

Besser: der Text in einem JTextArea anzuzeigen, ist es in der while-Schleife mit "\n" anhängt.

StringBuilder sb = new StringBuilder(); 
while(rs3.next()){ 
    sb.append(rs3.getString(1) +"\n"); 
} 
myTextArea.setText(sb.toString()); 

Noch besser noch: die ganzen ResultSet Daten in einem JTable angezeigt durch einen Tablemodel zu schaffen, entweder von Abstract abgeleitet für Flexibilität oder DefaultTableModel für Leichtigkeit und das Hinzufügen von Zeilen aus der ResultSet in das Modell Ihrer while-Schleife verwenden, und Setzen Sie dann ein TableModel von JTable mit diesem erstellten und befüllten Modell.

+0

Ich habe versucht, Ihre JtextArea-Methode, aber die GetSting (1) erhält nur das erste Ergebnis meiner Ergebnismenge nicht das vollständige Ergebnis Wie kann ich die vollständige Ergebnismenge erhalten? –

+0

@ ArturoMartinez: Dann kann Ihr aktuelles Resultset nur eine Zeile enthalten oder alle Zeilen enthalten die gleichen Daten. Am besten debuggen Sie entweder mit einem Debugger oder mit println-Anweisungen, um das herauszufinden. –