从datareader中选择下拉列表的值

时间:2013-09-30 18:52:04

标签: .net vb.net webforms

我有dropdownlist,我需要根据DataAdapter选择正确的状态,但它没有选择正确的状态,只是默认在第一项。

有谁知道我错过了什么?

Dim Adapter As New SqlDataAdapter("SELECT State From Customer Where userID = @UserID", "Data Source=myDataSource")
    Dim Dataset As New DataSet
    Adapter.SelectCommand.Parameters.Add("@UserID", SqlDbType.NVarChar).Value = UserID
    Adapter.Fill(Dataset, "Customer")
    Dim Val As String = Dataset.Tables(0).Rows(0)("State").ToString()
    State.SelectedValue = Val

<asp:DropDownList ID="State" runat="server" TabIndex="12" >
                            <asp:ListItem Value="0">--</asp:ListItem>
                            <asp:ListItem Value="AL">AL</asp:ListItem>
                            <asp:ListItem Value="AK">AK</asp:ListItem>
                            <asp:ListItem Value="AZ">AZ</asp:ListItem>
                            <asp:ListItem Value="AR">AR</asp:ListItem>
                            <asp:ListItem Value="CA">CA</asp:ListItem>
                            <asp:ListItem Value="CO">CO</asp:ListItem>
                            <asp:ListItem Value="CT">CT</asp:ListItem>
                            <asp:ListItem Value="DC">DC</asp:ListItem>
                            <asp:ListItem Value="DE">DE</asp:ListItem>
                            <asp:ListItem Value="FL">FL</asp:ListItem>
                            <asp:ListItem Value="GA">GA</asp:ListItem>
                            <asp:ListItem Value="HI">HI</asp:ListItem>
                            <asp:ListItem Value="ID">ID</asp:ListItem>
                            <asp:ListItem Value="IL">IL</asp:ListItem>
                            <asp:ListItem Value="IN">IN</asp:ListItem>
                            <asp:ListItem Value="IA">IA</asp:ListItem>
                            <asp:ListItem Value="KS">KS</asp:ListItem>
                            <asp:ListItem Value="KY">KY</asp:ListItem>
                            <asp:ListItem Value="LA">LA</asp:ListItem>
                            <asp:ListItem Value="ME">ME</asp:ListItem>
                            <asp:ListItem Value="MD">MD</asp:ListItem>
                            <asp:ListItem Value="MA">MA</asp:ListItem>
                            <asp:ListItem Value="MI">MI</asp:ListItem>
                            <asp:ListItem Value="MN">MN</asp:ListItem>
                            <asp:ListItem Value="MS">MS</asp:ListItem>
                            <asp:ListItem Value="MO">MO</asp:ListItem>
                            <asp:ListItem Value="MT">MT</asp:ListItem>
                            <asp:ListItem Value="NE">NE</asp:ListItem>
                            <asp:ListItem Value="NV">NV</asp:ListItem>
                            <asp:ListItem Value="NH">NH</asp:ListItem>
                            <asp:ListItem Value="NJ">NJ</asp:ListItem>
                            <asp:ListItem Value="NM">NM</asp:ListItem>
                            <asp:ListItem Value="NY">NY</asp:ListItem>
                            <asp:ListItem Value="NC">NC</asp:ListItem>
                            <asp:ListItem Value="ND">ND</asp:ListItem>
                            <asp:ListItem Value="OH">OH</asp:ListItem>
                            <asp:ListItem Value="OK">OK</asp:ListItem>
                            <asp:ListItem Value="OR">OR</asp:ListItem>
                            <asp:ListItem Value="PA">PA</asp:ListItem>
                            <asp:ListItem Value="RI">RI</asp:ListItem>
                            <asp:ListItem Value="SC">SC</asp:ListItem>
                            <asp:ListItem Value="SD">SD</asp:ListItem>
                            <asp:ListItem Value="TN">TN</asp:ListItem>
                            <asp:ListItem Value="TX">TX</asp:ListItem>
                            <asp:ListItem Value="UT">UT</asp:ListItem>
                            <asp:ListItem Value="VT">VT</asp:ListItem>
                            <asp:ListItem Value="VA">VA</asp:ListItem>
                            <asp:ListItem Value="WA">WA</asp:ListItem>
                            <asp:ListItem Value="WV">WV</asp:ListItem>
                            <asp:ListItem Value="WI">WI</asp:ListItem>
                            <asp:ListItem Value="WY">WY</asp:ListItem>
                        </asp:DropDownList>

2 个答案:

答案 0 :(得分:1)

请改为尝试:

State.Items.FindByValue(Val).Selected = True

答案 1 :(得分:1)

确保从数据库返回的值与下拉列表中列出的值匹配。