更改asp.net中下拉列表的值

时间:2015-01-18 06:23:15

标签: c# asp.net

我在ASP.NET网络表单中有一个下拉列表,但我无法更改此值 我的下拉:

<asp:DropDownList ID="dropeditdeactive" runat="server">
    <asp:ListItem Value="false">Active</asp:ListItem>
    <asp:ListItem Value="true">Deactive</asp:ListItem>
</asp:DropDownList>

和我改变它的代码:

protected void DropSiteId_SelectedIndexChanged(object sender, EventArgs e)
  {
      //lblError.Text = DropSiteId.SelectedValue.ToString();
      ConnectionManager cm = new ConnectionManager();
      cm.Command.CommandText = "Mysp_tblSitesRead";
      cm.Command.Parameters.Add("@ID", SqlDbType.SmallInt).Value = int.Parse(DropSiteId.SelectedValue.ToString());
      cm.Command.CommandType = CommandType.StoredProcedure;
      cm.Connection.Open();
      SqlDataReader dr = cm.Command.ExecuteReader();
      while (dr.Read()) { 
      dropeditdeactive.SelectedValue = (dr["URL"]).ToString();
      }
      cm.Connection.Close();
  }

当我在cm.Connection.Close();设置断点并在即时窗口中读取(dr["URL"]).ToString();的数据时,我收到此错误:

  

未处理的类型&#39; System.InvalidOperationException&#39;发生在System.Data.dll中   附加信息:没有数据时读取的尝试无效。

即使我无法使用此代码设置Value

dropeditdeactive.SelectedValue = "false";

或使用Convert.ToBoolean !!

1 个答案:

答案 0 :(得分:0)

检查读者是否有数据。即:

if(dr.HasRows)
{
   // code goes here
}