2016-04-14 9 views
0

このコードに問題があります。列帳からすべてのデータを表示したいが、最初の行だけが表示されていますが、何ができますか?DataReaderのすべての列を表示

 try{ 
      mcon.Open(); 
      s = "select* from login.biblia where carte='"+Carte.Text+"'"; 
      mcd = new MySqlCommand(s, mcon);  
      mdr = mcd.ExecuteReader(); 

      if (mdr.HasRows) 
      { 
       while (mdr.Read()) 
       { 
        richTextBox1.Text = mdr[0].ToString(); 
       } 

      }else 
       MessageBox.Show("NO DATA"); 

    }catch (Exception ex)  
     {MessageBox.Show(ex.Message);} 
     finally{ 
      mdr.Close();     
      mcon.Close();} 
    } 

答えて

2

すべてのレコードを持つStringBuilderを構築し、そしてあなたのRichTextBoxに結果を割り当てます。

var sb = new StringBuilder(); 

while (mdr.Read()) 
    sb.AppendLine(mdr[0].ToString()); 

richTextBox1.Text = sb.ToString(); 
2

あなたが代わりにあなたが最後の上にリターンを追加する必要がありますし、代わりにそれを追加し、このライン

richTextBox1.Text = mdr[0].ToString(); 

を使用するたびにRichTextBoxのTextプロパティを設定しています。あなたもあなたのための新しい行を追加しますどのEnvironment.NewLineを使用することができ、この

richTextBox1.Text += mdr[0].ToString() + "\r\n"; //Version 1 
richTextBox1.Text = richTextBox1.Text + mdr[0].ToString() + "\r\n"; //Version 2 

代わりの"\r\n"を行うには、2つの方法があります。例:

richTextBox1.Text += mdr[0].ToString() + Environment.NewLine; //Version 1 
richTextBox1.Text = richTextBox1.Text + mdr[0].ToString() + Environment.NewLine; //Version 2 
+1

あなただけかもしれないので、 'StringBuilder' – dcreight

+0

@dcreightを使用することができたときに過度に複雑ようだが、誰もが物事の彼らの方法を持って、私はちょうど「のStringBuilderを使用する」、質問アスカーは彼の過ちを理解しようとしていますです彼らが彼らの間違いを理解するのを助けない。私の答えは、間違いを指摘し、彼らがしようとしていることを行う正しい方法を説明しています。 –