2016-05-12 45 views
-1

我想讓我的完整結果集顯示到我的JTxtField,但我知道該怎麼做。get ResultSet到JTxtField

這是我的代碼目前:

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(); 
    } 

然而,這只是給我的結果集的第一個字符串,我怎樣才能得到完整的結果集?

+0

JTextField不支持多行。你可能想看看JTextArea。 –

+0

你試過方法toString – GlacialMan

+0

@ A.Sharma你是對的,但他可以在文本的一行中得到所有結果 – GlacialMan

回答

4

您的while循環可能會將許多字符串設置爲JTextField,但只有一個會顯示 - 最後一個設置爲JTextField的文本,因爲它會覆蓋之前添加的所有文本。

如果你必須顯示在JTextField中的所有字符串,然後創建一個StringBuilder對象,並從while循環內,追加你進入StringBuilder的ResultSet中的文本,然後while循環後,從使用toString() StringBuilder作爲JTextField的文本。例如,

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

更好:顯示在JTextArea文本,與"\n"其追加在while循環。

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

甚至更​​好的還是:通過創建一個TableModel的,從AbstractTableModel上無論是衍生靈活性或的DefaultTableModel的易用性,並使用while循環從結果添加行到模型顯示JTable中整個結果集數據,並然後用這個創建和填充的模型設置一個JTable的TableModel。

+0

我嘗試了你的jtextArea方法,但getSting(1)只能得到我的結果集的第一個結果而不是完整的結果,我怎麼能得到完整的結果集? –

+0

@ArturoMartinez:那麼你當前的結果集可能只能保存一行,或者保持所有行保存相同的數據。您最好使用調試器或println語句進行一些調試以找出問題。 –