2016-05-12 5 views
-1

私はJTxtFieldに表示するために私の完全な結果セットを取得したいが、私はそれを行う方法を知っている。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しようとしましたが、彼は正しいですが、彼はテキストの1行にすべての結果を得ることができます – GlacialMan

答えて

4

whileループはJTextFieldに多くの文字列を設定している可能性がありますが、前に追加されたすべてのテキストを上書きするため、JTextFieldのテキストとして最後に設定された文字列のみが表示されます。

あなたはStringBuilderのに取得した後、whileループの後、からtoString()を使用するResultSetのテキストを、JTextFieldの中のすべての文字列を表示し、その後StringBuilderオブジェクトを作成し、whileループ内で、アペンドなければならない場合JTextFieldのテキストとしてStringBuilder。例えば、

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

ベター:"\n"とwhileループでそれを追加、JTextAreaの中にテキストを表示します。

さらに良いことに、まだ
StringBuilder sb = new StringBuilder(); 
while(rs3.next()){ 
    sb.append(rs3.getString(1) +"\n"); 
} 
myTextArea.setText(sb.toString()); 

:いずれか、TableModelの作成を容易にするための柔軟性やDefaultTableModelのためAbstractTableModelに由来し、そしてあなたのwhileループを使用してモデルへのResultSetから行を追加することにより、JTableの全体のResultSetのデータを表示し、この作成され塗りつぶされたモデルでJTableのTableModelを設定します。

+0

私はあなたのjtextAreaメソッドを試してみましたが、getSting(1)は私の結果セットの最初の結果しか得ていません。どのように完全な結果セットを得ることができますか? –

+0

@ArturoMartinez:現在の結果セットは1行しか保持しないか、すべての行が同じデータを保持するようにします。デバッガを使うか、println文を使ってデバッグするのが最も良いでしょう。 –

関連する問題