2016-05-12 44 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语句进行一些调试以找出问题。 –