C# 错误:';ddVehicleType';具有无效的SelectedValue,因为它不在项目列表中。参数名称:value
我在编辑字段中有一个名为“ddVehicleType”的下拉列表。当页面加载时,iam从数据库获取值。但错误是这样来的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' 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>