2010-04-19 94 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」,它會拋出一個空引用異常。