从 Web 表单中检索记录列表

Retreiving a list of records from web forms

我遇到了这个问题。 我有一个网络表单,用户可以在其中插入他们的数据(姓名、出生日期...)和两种类型的地址。当我必须检索整个地址列表时(我总是两次获得数据库的第一条记录),问题就来了(很明显)。

这是代码:

SqlCommand cmd = new SqlCommand("select * from Address where idUsers = @id", con);
cmd.Parameters.Add("@id", SqlDbType.Int).Value = id;
rdr = (cmd.ExecuteReader());
if (rdr.HasRows)
{
  rdr.Read();

  AddressType.Items[AddressType.SelectedIndex].Selected = false;
  AddressType.Items.FindByValue(rdr["idAddressType"].ToString()).Selected = true;
  txtStreet.Text = rdr["streetAddress"].ToString();
  txtCity.Text = rdr["cityAddress"].ToString();
  Nation.Items[Nation.SelectedIndex].Selected = false;
  Nation.Items.FindByValue(rdr["idNations"].ToString()).Selected = true;

  tblAddress2.Visible = true;
  AddressType2.Items[AddressType2.SelectedIndex].Selected = false;
  AddressType2.Items.FindByValue(rdr["idAddressType"].ToString()).Selected = true;
  txtStreet2.Text = rdr["streetAddress"].ToString();
  txtCity2.Text = rdr["cityAddress"].ToString();
  Nation2.Items[Nation2.SelectedIndex].Selected = false;
  Nation2.Items.FindByValue(rdr["idNations"].ToString()).Selected = true;
}
rdr.Close();

我能做什么?有什么建议吗? 提前谢谢你。

tblAddress2.Visible = true;

之前再添加一个rdr.Read();

否则你只是再次阅读同一行。除非你告诉它,否则它不会知道移动到下一行。