将标签文本设置为从SQL数据库检索的数据

时间:2015-05-19 11:43:16

标签: asp.net sql-server webforms label

我正在使用SQL数据库在ASP.NET Web窗体中构建一个网站。该数据库包含一个包含571个条目数据的表。将数据输出到标签时出现问题。屏幕截图如下。

数据库示例

enter image description here

源代码

using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))
            {
                using (SqlCommand command = new SqlCommand("SELECT Id, Name, Townland, Near, Status, Built FROM Houses", connection))
                {
                    connection.Open();
                    using (SqlDataReader reader = command.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                                lblId.Text = reader[0].ToString();
                                lblName.Text = reader[1].ToString();
                                lblTown.Text = reader[2].ToString();
                                lblNear.Text = reader[3].ToString();
                                lblStatus.Text = reader[4].ToString();
                                lblBuilt.Text = reader[5].ToString();
                        }
                    }
                }
            }

预期输出

enter image description here

实际输出

enter image description here

我的问题是为什么输出一个随机的房子而不是从第一个开始?

3 个答案:

答案 0 :(得分:0)

因为您没有指示它应该使用哪种排序:

SELECT Id, Name, Townland, Near, Status, Built FROM Houses ORDER BY Id

答案 1 :(得分:0)

您没有返回所有行的WHERE子句。您的代码会将标签文本分配给返回的最后一行,这可能是偶然的任何行,因为您没有ORDER by子句。

看来你想要展示多栋房屋。这将需要为每个房子设置一套单独的标签。您的代码中只有一个显而易见。

答案 2 :(得分:0)

你没有在你的sql查询中使用任何条件。

SELECT Id, Name, Townland, Near, Status, Built FROM Houses order by Id 

SELECT TOP 5 Id, Name, Townland, Near, Status, Built  FROM Houses ;--It select only first 5 values in the table