从数据库中选择数据,然后将数据与下拉列表匹配

本文关键字:数据 下拉列表 数据库 选择 然后 | 更新日期: 2023-09-27 18:22:14

我有一个Dropdownlist,我想从数据库中获取"用户"特定的"标题",并将其设置为该Dropdownlist。

但是,它并没有为下拉列表中的值设置特定的标题,而是替换了"选择标题文本",而不是在下拉列表中选择文本Ms。

是否有任何解决方案可以在其合法位置设置标题值,而不替换下拉列表中的文本?

这是我的aspx代码

<asp:DropDownList ID="userTitle" runat="server">
    <asp:ListItem Text="Select Title" Value="-1"></asp:ListItem>
    <asp:ListItem Text="Mr" Value="Mr"></asp:ListItem>
    <asp:ListItem Text="Mrs" Value="Mrs"></asp:ListItem>
    <asp:ListItem Text="Miss" Value="Miss"></asp:ListItem>
    <asp:ListItem Text="Ms" Value="Ms"></asp:ListItem>
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RequiredFieldValidatorTitle" runat="server" ErrorMessage="User Title is required" InitialValue="-1" ForeColor="Red" ControlToValidate="userTitle"></asp:RequiredFieldValidator>

这是后面的代码

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            PopulateTheFields();
        }
    }

private void PopulateTheFields()
        {
            String str;
            SqlCommand comm;
            con.Open();
            str = "select title from users where username='" + theUser + "'";
            comm = new SqlCommand(str, con);
            SqlDataReader reader = comm.ExecuteReader();
            if (reader.Read())
            {
                userTitle.SelectedItem.Text = reader["title"].ToString();
                reader.Close();
                con.Close();
            }
        }

这是一张丝网印刷的校样。

https://i.stack.imgur.com/qgLc1.png

谢谢!度过美好的一天

从数据库中选择数据,然后将数据与下拉列表匹配

您可以尝试以下方法:

userTitle.SelectedItem.Value = reader["title"].ToString();

而不是使用

userTitle.SelectedItem.Text = reader["title"].ToString();

此外,我建议您使用参数化sql查询而不是串联字符串来构建查询。这种方法将帮助您避免sql注入。

例如,您可以尝试以下方法:

string query = "select title from users where username=@username";
SqlCommand command = new SqlCommand(query, con);
command.Parameters.Add(new SqlParameter("username",theUser));

听起来你想做这样的事情:

userTitle.SelectedValue = reader["title"].ToString();