2016-04-27 5 views
0

Я новичок в C# и сейчас изучаю себя. В моем проекте я хотел бы сделать 10 данных из table и показать их в цикле. Например, если у него 10 данных, поэтому все данные будут показаны на странице default.aspx. В настоящее время мой код может отображать только первую строку и зацикливать ее 10 раз. Ниже мой образец.Цикл показывает только одну информацию

namespace CRM_Attachment 

public partial class _Default : System.Web.UI.Page 
{ 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["Sample"].ConnectionString; 
     SqlConnection con = new SqlConnection(connectionString); 

     SqlCommand com; 
     con.Open(); 
     string str = "SELECT TOP 10 FILE_NAME FROM FILE"; 
     com = new SqlCommand(str, con); 
     SqlDataReader reader = com.ExecuteReader(); 


     //if (reader.HasRows) 
     //{ 
      while (reader.Read()) 
      { 
       labelname1.Text = reader["FILE_NAME"].ToString(); 
      } 
     //} 

     reader.Close(); 
     con.Close(); 


    } 
} 

}

Ниже моя страница default.aspx ..

<body> 
<form id="form1" runat="server"> 
<% for (int i=0;i<10;i++) {%> 
<div> 
<asp:Label ID="labelname1" runat="server" Text="Label"></asp:Label> 
</div> 
<%}%> 
</form> 

Могу ли я знаю, что я делаю неправильно. Заранее спасибо.

ответ

5

Вы устанавливаете свойство «Текст» одной и той же метки 10 раз. Он перезаписывается на каждой итерации цикла. Вы должны добавить значение столбца из базы данных в метку. Измените код ниже:

labelname1.Text += reader["FILE_NAME"].ToString(); 
+0

Благодарим за этот ответ. Код уже сработал. Очень большое спасибо. – namasayadin

+0

Добро пожаловать @namasayadin –