2013-05-13 73 views
0

我有一个下拉列表为'ddVehicleType',它位于编辑字段中。 iam在页面加载时从数据库中获得价值。但错误就要像错误:'ddVehicleType'具有无效的SelectedValue,因为它不存在于项目列表中。参数名称:值

'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> 
+0

也许让它:QueryStringParameter?因为你正在使用一个字符串 – DiederikEEn 2013-05-13 08:40:42

回答

0

,而不是while循环使用如果 原因只有一个值可以被选为下拉列表不是多个。 所以去掉while循环

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

OR

可能是

<asp:ListItem Value="0">-Select-</asp:ListItem> 

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

值不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> 
相关问题