Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.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# 错误:';ddVehicleType';具有无效的SelectedValue,因为它不在项目列表中。参数名称:value_C#_Asp.net - Fatal编程技术网

C# 错误:';ddVehicleType';具有无效的SelectedValue,因为它不在项目列表中。参数名称:value

C# 错误:';ddVehicleType';具有无效的SelectedValue,因为它不在项目列表中。参数名称:value,c#,asp.net,C#,Asp.net,我在编辑字段中有一个名为“ddVehicleType”的下拉列表。当页面加载时,iam从数据库获取值。但错误是这样来的 'ddVehicleType' has a SelectedValue which is invalid because it does not exist in the list of items.Parameter name: value 我的编码是 while (reader.Read()) {

我在编辑字段中有一个名为“ddVehicleType”的下拉列表。当页面加载时,iam从数据库获取值。但错误是这样来的

 'ddVehicleType' has a SelectedValue which is invalid because it does not exist in the list of items.Parameter name: value   
我的编码是

while (reader.Read())
                        {       
                                ddVehicleType.SelectedValue = reader["VehicleId"].ToString();

                        }    
设计页面

<asp:DropDownList ID="ddVehicleType" runat="server" AppendDataBoundItems="true" CssClass="drop" DataSourceID="SqlDataSource2" DataTextField="VehicleType" DataValueField="VehicleId">
                <asp:ListItem Value="0">-Select-</asp:ListItem>
            </asp:DropDownList>

            <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:TAXIConnectionString %>" SelectCommand="SELECT [VehicleId], [VehicleType] FROM [VehicleMaster] WHERE ([Status] = @Status)">
                <SelectParameters>
                    <asp:Parameter DefaultValue="Available" Name="Status" Type="String" />
                </SelectParameters>
            </asp:SqlDataSource>

-挑选-

而不是while loop使用if 原因下拉列表只能选择一个值,不能选择多个值。 所以移除while循环

if (reader.Read())
{       
      ddVehicleType.SelectedValue = reader["VehicleId"].ToString();
}    

可能是

<asp:ListItem Value="0">-Select-</asp:ListItem>
值不匹配 此外,在SQLAdapter中,valu类型参数字符串与您在代码中传递的参数字符串不同

<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:TAXIConnectionString %>" SelectCommand="SELECT [VehicleId], [VehicleType] FROM [VehicleMaster] WHERE ([Status] = @Status)">
                <SelectParameters>
                    <asp:Parameter DefaultValue="Available" Name="Status" Type="String" />
                </SelectParameters>
            </asp:SqlDataSource>

也许可以:QueryStringParameter?当您使用字符串时
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:TAXIConnectionString %>" SelectCommand="SELECT [VehicleId], [VehicleType] FROM [VehicleMaster] WHERE ([Status] = @Status)">
                <SelectParameters>
                    <asp:Parameter DefaultValue="Available" Name="Status" Type="String" />
                </SelectParameters>
            </asp:SqlDataSource>