我在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
!!
答案 0 :(得分:0)
检查读者是否有数据。即:
if(dr.HasRows)
{
// code goes here
}