2017-11-03 13 views
0

c를 다음 줄에 여러 줄 텍스트 상자에 쿼리 결과를 표시하지만 난 그것을 드릴 수 없습니다 않습니다. 이것은 내 코드입니다어떻게 내가이</p> <pre>col1 result col2 result col3 result</pre> <p>처럼 여러 줄 텍스트 상자에 내 데이터를 표시하려고 #

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

이 코드는 하나의 열 결과 만 표시합니다. 모든 열을 어떻게 얻을 수 있습니까?

+0

이 당신의 독자에서로드 텍스트를 추가하는 StringBuilder 클래스를 사용합니다. 각 루프의 끝에서 Environment, NewLine을 추가하십시오. 루프 종료시 Text 속성을 StringBuilder.ToString 결과로 설정합니다. – Steve

답변

0

현재 코드의 문제는 모든 열에 대해 Text을 덮어 쓰고 있기 때문에 마지막 열만 남게됩니다.

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

당신이 당신의 열은 다음

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

같은 것을 시도 포맷하고 싶지만 내가 대신 Mutiline 텍스트 상자의 콘텐츠를 보여주기 위해 더 적절한 제어보기를 사용하는 것이 좋습니다 경우

. 목록보기와 같은 것.

0

이 다음 코드에서 보정을 할 수 있습니다 :

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