通过MySQL表迭代

时间:2015-10-18 20:24:10

标签: c# mysql

我正在尝试用C#和MySQL数据库制作一个地址簿。我正在尝试使用标签并使用数据库信息设置Text的{​​{1}}。我正在使用Label作为我的标签。我只需要显示1个人的信息,我希望数据库中的所有人都列在输出中。我做错了什么?

FlowLayoutPanel

2 个答案:

答案 0 :(得分:0)

您可以在标签中看到最后检索到的记录,因为每次下一个检索到的记录都会覆盖Label循环中的Text' while。如果要显示所有检索到的记录,则应使用DataGridView。像这样:

SqlDataAdapter da = new SqlDataAdapter("SELECT first_name, last_name, street, city, state, zip, phone, email From address_book ORDER BY last_name, first_name", con);
DataSet ds = new DataSet();
da.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];

答案 1 :(得分:0)

我想出了如何编写我想要的代码。我在label上使用FlowLayoutPanel来编写MySQL表中的所有条目。这不是工具箱中的Windows窗体Label。它将从数据库反复写入labelflowLayoutPanel将在panel中逐个放置每个新输出。

cnn.Open();
            MySqlDataReader reader = cmd.ExecuteReader();
            Label lblName;
            while (reader.Read())
            {

                lblName = new Label();
                lblName.Text = reader.GetString("first_name") + " " + reader.GetString("last_name") + " \r\n"
                + reader.GetString("street") + " \r\n"
                + reader.GetString("city") + ", " + reader.GetString("state") + " " + reader.GetString("zip") + " \r\n"
                + reader.GetString("phone") + " \r\n"
                + reader.GetString("email");
                lblName.Width = 200;
                lblName.Height = 90;
                flowLayoutPanel1.Controls.Add(lblName);
            }

            cnn.Close();