【问题标题】:Retreiving a list of records from web forms从 Web 表单中检索记录列表
【发布时间】:2020-07-20 10:48:32
【问题描述】:

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

这是代码:

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();

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

【问题讨论】:

    标签: asp.net ado


    【解决方案1】:

    tblAddress2.Visible = true;之前添加另一个rdr.Read();

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

    【讨论】:

    • 感谢阿迪森!但它只适用于文本框,不适用于下拉列表!在这种情况下你能帮我吗?提前谢谢!
    • 不是真的,因为我不知道您尝试了哪些与下拉列表相关的代码或您遇到的具体问题。我猜您可能需要使用循环来获取所有结果,而不仅仅是一个固定数字,但这纯粹是一个猜测。如果您无法弄清楚,那么我建议您使用其中的相关代码提出新问题
    • 我最多可以有 2 个地址(1 个是必需的,第二个是可选的)。我认为我不需要使用 for 循环进行迭代!
    • 我明白了。那么究竟是什么问题呢?
    • 问题如下:当我通过单击按钮 EDIT 检索 Web 表单中的地址时,第一个地址的 DROPDOWN LISTS 中的值是错误的(我可以检索到第二个地址,但对于第一个地址,下拉列表中的值是错误的!!)。这个问题只出现在第一个地址的 DROPDOW LIST 中!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-27
    • 2015-02-09
    • 2013-07-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多