2010-04-19 126 views
0

我不得不降下来,其执行代码列表时,特定的条件,我试图通过选择值来检查它,但它得到错误下拉列表中选中

protected void DDLProductFamily_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     if (DDLProductFamily.Items.FindByText("Name").Selected == true) 
     using (SqlConnection Con = Connection.GetConnection()) 
     { 
      SqlCommand Com = new SqlCommand("GetListViewByProductCategory", Con); 
      Com.CommandType = CommandType.StoredProcedure; 
      Com.Parameters.Add(Parameter.NewInt("@ProductCategory_Id", DDLProductFamily.SelectedValue.ToString())); 
      SqlDataAdapter DA = new SqlDataAdapter(Com); 
      DA.Fill(dt); 
      DataList1.DataSource = dt; 
      DataList1.DataBind(); 
     } 
     else if (DDLProductFamily.Items.FindByText("ProductFamilly").Selected == true) 
     { 
      using (SqlConnection Con = Connection.GetConnection()) 
     { 
      SqlCommand Com = new SqlCommand("GetListViewByProductFamily", Con); 
      Com.CommandType = CommandType.StoredProcedure; 
      Com.Parameters.Add(Parameter.NewInt("@ProductFamily_Id", DDLProductFamily.SelectedValue.ToString())); 
      SqlDataAdapter DA = new SqlDataAdapter(Com); 
      DA.Fill(dt); 
      DataList1.DataSource = dt; 
      DataList1.DataBind(); 
     } 
     } 
    } 
+3

而错误是? – womp 2010-04-19 16:06:15

+0

对象引用不是实例..... – Myworld 2010-04-19 16:16:26

+0

您应该包含(至少一部分)堆栈跟踪。有任何数量的东西都可能无效。 – R0MANARMY 2010-04-19 16:20:00

回答

1

你有没有实例化对象dt

1

ProductFamily拼写错误(2 L's,而不是1),所以你得到一个空引用:

else if (DDLProductFamily.Items.FindByText("ProductFamilly").Selected == true) 
0

您可能需要检查ListeItemCollection方法FindByText

DDLProductFamily.Items.FindByText("Name").Selected 

DDLProductFamily.Items.FindByText("ProductFamilly").Selected 

如果使用“Name”或“ProductFamilly”条件在集合中找不到项目,则返回null。所以如果你在一个空对象上调用“Selected”,它会抛出一个空引用异常。