2017-11-03 4 views
0

Ich versuche, meine Daten in mehrzeiligen Textfeld wie dieseWie zeige ich Abfrageergebnis in mehrzeiliges Textfeld in der nächsten Zeile C#

col1 

result 

col2 

result 

col3 

result

angezeigt werden, aber ich bin nicht in der Lage, es zu tun. Dies ist mein Code

SqlConnection sq = new SqlConnection(ConfigurationManager.ConnectionStrings["ConString"].ConnectionString); 
SqlCommand cmd = new SqlCommand("Select * from table",sq); 
sq.Open(); 

SqlDataReader rdr = cmd.ExecuteReader(); 

while (rdr.Read()) 
{ 
    // pkg_details.Text = pkg_details.Text = rdr[0].ToString(); 
    pkg_details.Text = rdr[0].ToString(); 
    pkg_details.Text = rdr[1].ToString(); 
    pkg_details.Text = rdr[2].ToString(); 
} 

Dieser Code zeigt nur ein Spaltenergebnis an. Wie bekomme ich alle Spalten?

+0

eine Klasse String Verwenden Sie den Text von Ihrem Leser geladen anhängen. Am Ende jeder Schleife fügen Sie eine Umgebung, NewLine hinzu. Setzen Sie beim Schleifenexit die Text-Eigenschaft auf das StringBuilder.ToString-Ergebnis – Steve

Antwort

0

das Problem mit dem aktuellen Code ist, dass Sie Text für jede Spalte, so dass nur letzte Spalte bleiben wird überschreiben.

while (rdr.Read()) 
{ 
    pkg_details.Text += string.Join(Environment.NewLine, rdr.Take(3).Select(ToString)); 
} 

, wenn Sie Ihre Spalten dann etwas versuchen, wie

while (rdr.Read()) 
{ 
    pkg_details.Text += string.Join(Environment.NewLine, rdr.Take(3) 
        .Select((x, i) => $"Column {i}{Environment.NewLine}{x.ToString()}")); 
} 

zu formatieren, aber ich schlage vor, Sie geeignetere Steuerungssicht zu verwenden, um Inhalte zu zeigen, statt Mutiline Textbox. etwas wie Listenansicht.

0

Sie können Korrektur in Ihrem Code im Anschluss an diese machen:

 SqlCommand cmd = new SqlCommand("Select * from table",sq); 
     sq.Open(); 

     SqlDataReader rdr = cmd.ExecuteReader(); 

     while (rdr.Read()) 
     { 
      // pkg_details.Text = pkg_details.Text = rdr[0].ToString(); 
      pkg_details.Text += rdr[0].ToString() + Environment.NewLine; 
      pkg_details.Text += rdr[1].ToString() + Environment.NewLine; 
      pkg_details.Text += rdr[2].ToString() + Environment.NewLine; 
     } 
Verwandte Themen