2016-04-14 9 views
0

Ich habe ein Problem mit diesem Code. Ich möchte alle Daten von der Spalte Carte zeigen, aber es zeigt nur die erste Reihe, was kann ich tun?Alle Spalten von einem DataReader zeigen

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

Antwort

2

eine StringBuilder mit allen Datensätzen aufbauen, und das Ergebnis zu Ihrer RichTextBox zuweisen.

var sb = new StringBuilder(); 

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

richTextBox1.Text = sb.ToString(); 
2

Sie setzen die Text Eigenschaft des RichTextBox jedes Mal, wenn Sie diese Zeile verwenden

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

Stattdessen sollten Sie eine Rückkehr auf das Ende hinzufügen und es stattdessen anfügen. Es gibt zwei Möglichkeiten, dies

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

Statt "\r\n" Sie auch Environment.NewLine verwenden können, um zu tun, die eine neue Linie für Sie hinzufügen. Beispiele:

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

scheint zu kompliziert, wenn Sie gerade 'StringBuilder' – dcreight

+0

@dcreight Vielleicht so verwenden können, aber jeder hat seine Art und Weise, Dinge zu tun, ich bin gerade, versuchen die Frage Fragesteller zu verstehen, seinen Fehler zu helfen„verwenden String“ist ihnen nicht helfen, ihren Fehler zu verstehen. Meine Antwort weist auf den Fehler hin und erklärt die richtige Art zu tun, was sie zu tun versuchten, nicht eine Alternative dazu. –