繁体   English   中英

asp.net dropDownList选定的值null

[英]asp.net dropDownList selected value null

我正在申请有关文章发表的学校申请。 在dropdownList中,我想显示数据库中存在的值作为默认的预选值。 DropdownList从表“ kategorite”隐含“ emertimi”。 当用户选择一个值时,它将在表“ artikulli”中保存“ kategoria_id”的id。 这是我的代码背后

if (e.Item.ItemType == ListItemType.EditItem)
            {
                DropDownList drpdKategoria = e.Item.FindControl("drpdKategoria") as DropDownList;
                SqlConnection con = new SqlConnection(connection);
                string Qry = "select * from kategoria";
                string id = Request.QueryString["id"];
                SqlDataAdapter da = new SqlDataAdapter(Qry, con);
                DataSet ds = new DataSet();
                DataSet ds2 = new DataSet();
                DataSet ds3 = new DataSet();
                con.Open();
                da.Fill(ds);
                string kategoria_id = "select kategoria_id from artikulli where id='" + id + "'";
                SqlDataAdapter dk = new SqlDataAdapter(kategoria_id, con);
                dk.Fill(ds2);
                var kategoria_id_result = Convert.ToInt32(ds.Tables[0].Rows[0][0]);
                string emertimi = "select emertimi from kategoria where id='" + kategoria_id_result + "'";
                SqlDataAdapter de = new SqlDataAdapter(emertimi, con);
                de.Fill(ds3);

                drpdKategoria.DataSource = ds;
                drpdKategoria.DataValueField = "id";
                drpdKategoria.DataTextField = "emertimi";              
                drpdKategoria.DataBind();
                drpdKategoria.SelectedValue = drpdKategoria.Items.FindByText(emertimi).Value;
                con.Close();
                con.Dispose();
                ds.Dispose();
                ds2.Dispose();
                ds3.Dispose();
                da.Dispose();
                dk.Dispose();
                de.Dispose();
            }
        }

但它显示了此错误: 对象引用未设置为object的实例 在这一行: drpdKategoria.SelectedValue = drpdKategoria.Items.FindByText(emertimi).Value;

我猜emertimi包含一个在下拉列表中找不到的值。 因此, FindByText将返回null并且获取Value将导致此异常。

在尝试获取Value之前,请测试结果。

另外,使用using语句代替单独的Dispose调用。 并且要注意SQL注入的风险:请改用参数。

那是因为找不到您要寻找的商品。 您应该对代码进行故障排除,并弄清楚在运行时设置了什么emertimi。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM