2016-04-27 82 views
0

我是C#的新手,目前正在学习自己。在我的项目中,我想要做的是从table中取10个数据并循环显示。例如,如果它有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 –