我试图用C#和MySQL数据库进行通讯录。我正在尝试使用标签并将Label
的Text
设置为数据库信息。我为我的标签使用了FlowLayoutPanel
。我只能获取1人的信息,我希望数据库中的所有人都能在输出中列出。我究竟做错了什么?通过MySQL表遍历
MySqlCommand cmd = cnn.CreateCommand();
cmd.CommandText = "SELECT first_name, last_name, street, city, state, zip, phone, email From address_book ORDER BY last_name, first_name";
try
{
cnn.Open();
MySqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
lblFirstName.Text = reader.GetString("first_name") + " " + reader.GetString("last_name");
lblStreet.Text = reader.GetString("street");
lblCityStateZip.Text = reader.GetString("city") + ", " + reader.GetString("state") + " " + reader.GetString("zip");
lblPhone.Text = reader.GetString("phone");
lblEmail.Text = reader.GetString("email");
}
cnn.Close();
}
您只有一组UI元素,并且您正在重复写入该组。无论您使用的是哪种UI技术,您都需要某种类型的中继器或列表或网格UI组件,它可显示*多个*记录。您只能使用一个标签不能显示多个记录。 – David
是@David是正确的,您需要一些中继器或网格来显示基于您的查询中的行数。 –
您可能有一个FlowLayoutPanel,但像'lblFirstName'这样的控件不知道它们在什么容器中。 –