C# 从下拉列表中选择项目时出现下拉选择错误

C# 从下拉列表中选择项目时出现下拉选择错误,c#,asp.net,C#,Asp.net,当我运行代码时,它会发送一个错误,即对象引用未设置为下拉列表4中对象的实例 下拉选择错误 对象引用未设置为对象的实例 当我从下拉列表中选择项目时 提前感谢,请帮助plz 这是我的密码 protected void LoadOptions4() { DropDownList4.Items.Clear(); // DropDownList4 dr = new DropDownList4();

当我运行代码时,它会发送一个错误,即对象引用未设置为下拉列表4中对象的实例

下拉选择错误

对象引用未设置为对象的实例

当我从下拉列表中选择项目时

提前感谢,请帮助plz

这是我的密码

 protected void LoadOptions4()
            {
                DropDownList4.Items.Clear();
               // DropDownList4 dr = new DropDownList4();


                DataTable CardCode = new DataTable();
                // string name2;
               // string id, name, newName;

                SqlConnection connection = new SqlConnection("Data Source=1.2.3.4;Initial Catalog=TestData;Persist Security Info=True;User ID=abcd;Password=abcd12345");
                using (connection)
                {
                    // string selected4 = DropDownList3.SelectedItem.Value;
                    //SqlCommand theCommand = new SqlCommand("SELECT T1.CardCode , T1.CardName, T2.OpprId, T1.CntctPrsn,T2.CprCode,T3.CntctCode,T3.Name  FROM OCRD T1 left  join OOPR T2 on T1.CardCode=T2.CardCode left join OCPR T3 on T2.CprCode=T3.CntctCode where T1.CardCode=@CardCode ", connection);

                    SqlCommand theCommand = new SqlCommand("select SlpCode,SlpName from OSLP where SlpCode=@SlpCode  and SlpCode<>-1 ", connection);

                    //  SqlDataAdapter adapter = new SqlDataAdapter("SELECT T1.CardCode , T1.CardName, T2.OpprId,T1.CntctPrsn, T2.CprCode,T2.MaxSumLoc  FROM OCRD T1 left  join OOPR T2 on T1.CardCode=T2.CardCode where T1.CardCode=@selected", connection);

                    //   SqlDataAdapter adapter = new SqlDataAdapter("SELECT T1.CardCode , T1.CardName, T2.OpprId,T1.CntctPrsn, T2.CprCode,T2.MaxSumLoc  FROM OCRD T1 left  join OOPR T2 on T1.CardCode=T2.CardCode where T1.CardCode=@selected", connection);
                    string selected5;

                     selected5 = DropDownList4.SelectedItem.Value;

                   theCommand.Parameters.AddWithValue("@SlpCode", selected5);
                   SqlDataAdapter adapter = new SqlDataAdapter(theCommand);
                    //DataSet ds = new DataSet();
                    adapter.Fill(CardCode);
                //name2 = id;

                    if (CardCode.Rows.Count > 0)
                    {
                        for (int i = 0; i < CardCode.Rows.Count; i++)
                        {

                            string name3 = CardCode.Rows[i]["SlpName"].ToString();
                            string slpCode = CardCode.Rows[i]["SlpCode"].ToString();
                            // string newName2 = contcode + " ---- " + name2;

                            DropDownList3.Items.Add(new ListItem(name3, slpCode));


     } }}
    }

根据上面的代码,您正在从DropDownList 4中清除项目,如下所示

DropDownList4.Items.Clear();
然后经过几行代码,得到dropdownlist的选定值

selected5 = DropDownList4.SelectedItem.Value;
上面的行导致了问题。没有要选择的项目,但您正在选择一个项目。
请删除项目。清除并检查一次。

根据上面的代码,您正在从DropDownList 4中清除项目,如下所示

DropDownList4.Items.Clear();
 DropDownList4.Items.Clear();  remove this line from the top ,  
然后经过几行代码,得到dropdownlist的选定值

selected5 = DropDownList4.SelectedItem.Value;
上面的行导致了问题。没有要选择的项目,但您正在选择一个项目。 请删除项目。清除并检查一次

 DropDownList4.Items.Clear();  remove this line from the top ,  
在第一行中,您正在清除DropDownList4中的数据,并准备调用它

selected5 = DropDownList4.SelectedItem.Value; 
因此,请尝试将其数据源加载到函数中的DropDownlost4

在第一行中,您正在清除DropDownList4中的数据,并准备调用它

selected5 = DropDownList4.SelectedItem.Value; 
因此,请尝试将其数据源加载到函数中的DropDownlost4

在这里,函数名为LoadOptions4和DropDownList3 人口正在增加。这毫无意义。根据你的片段 给定,您正在填充DropDownList3,因此必须清除 DropDownList3代替了DropDownList4

因此,您的方法签名如下所示:

 protected void LoadOptions3()
  {
     DropDownList3.Items.Clear();
     string selected5;
     selected5 = DropDownList4.SelectedItem.Value;
     //perform db operations
     //loop through values
     DropDownList3.Items.Add(new ListItem(name3, slpCode));
 }
在这里,函数名为LoadOptions4和DropDownList3 人口正在增加。这毫无意义。根据你的片段 给定,您正在填充DropDownList3,因此必须清除 DropDownList3代替了DropDownList4

因此,您的方法签名如下所示:

 protected void LoadOptions3()
  {
     DropDownList3.Items.Clear();
     string selected5;
     selected5 = DropDownList4.SelectedItem.Value;
     //perform db operations
     //loop through values
     DropDownList3.Items.Add(new ListItem(name3, slpCode));
 }

放置填充下拉列表4的代码?因为您正在清除下拉列表,然后访问SelectedItem的值。我想你的意思是清除DropDownList3而不是DropDownList4。@史蒂夫,这不是重复的。您的链接解释了什么是空引用异常。在N个不同场景下,可能会导致N个时间。就像OP的代码一样。@nvartak空引用异常的问题是,如果不实际执行代码,很难从文本进行调试。一般情况下,SO无法回答。请输入填充下拉列表的代码4?这是因为您正在清除下拉列表,然后访问SelectedItem的值。我想你的意思是清除DropDownList3而不是DropDownList4。@史蒂夫,这不是重复的。您的链接解释了什么是空引用异常。在N个不同场景下,可能会导致N个时间。就像OP的代码一样。@nvartak空引用异常的问题是,如果不实际执行代码,很难从文本进行调试。一般来说,SO无法回答。