Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET中的DropDownList错误_C#_Asp.net - Fatal编程技术网

C# ASP.NET中的DropDownList错误

C# ASP.NET中的DropDownList错误,c#,asp.net,C#,Asp.net,这是我的drpdownlist <asp:DropDownList ID="DriverGender" runat="server"> <asp:ListItem Text="M" Value="M"></asp:ListItem> <asp:ListItem Text="F" Value="F"></asp:ListItem>

这是我的drpdownlist

<asp:DropDownList ID="DriverGender" runat="server">
                         <asp:ListItem Text="M" Value="M"></asp:ListItem>
                         <asp:ListItem Text="F" Value="F"></asp:ListItem>
                        </asp:DropDownList>
但这是我经常遇到的错误:
异常详细信息:System.NullReferenceException:Object reference未设置为对象的实例。

请查看
(String)DataReaderObj[“性别”]
的值,可能是它的null(空字符串)或与“M”或“F”不匹配的字符串。

这是三件事之一,我打赌它是第二件事

  • DriverGender
    或其
    集合为空
  • DriverGender
    中没有
    值等于
    DataReaderObj[“性别”]
    值的项
  • DataReaderObj
    为空

  • 例如,对于数字2,您需要一个包含在
    DriverGender
    中的项目,该项目的
    值(而不是
    Text
    )正好等于
    DataReaderObj[“gender”]表示的任何文本值

    我确实检查了,并且从数据库返回了正确的值。是中继器或网格视图中的DriverGender控件吗?代码背后的哪个事件正在执行该代码?(询问DriverGender是否已实例化。)另外,来自数据库的值是否大写?来自数据库的值中可能有前导空格或尾随空格。@Michael Liu:是的,有一些尾随空格使用trim()方法删除,现在选择了正确的值。是,但在执行该行代码时,该值是否在
    DriverGender
    的值列表中?你确定吗?您只需调试代码并逐步验证即可。我使用了一个a标签来显示数据库中的值,它确实显示了正确的答案,但这并不意味着它包含在
    DriverGender
    中。再次,在执行该行之前,逐步检查
    集合,并确保具有该
    属性的项存在。感谢你Justin。我调试并发现从数据库中提取的值为“M”(即带有一些空格的M)有趣的是,一个程序员坚持告诉你“从数据库中获取正确的值”,而实际上它不是正确的值(“M”而不是“M”),有一些答案告诉你这一点,没有一个被接受为答案,其中一个甚至没有投票。你认为人们应该帮助你,而你甚至不能放弃投票或标记为正确答案。。。
    DriverGender.Items.FindByValue((String)DataReaderObj["gender"]).Selected = true; 
    
    DriverGender.Items.FindByValue((String)DataReaderObj["gender"].trim()).Selected = true;