从数据库中选择数据,然后将数据与下拉列表匹配
本文关键字:数据 下拉列表 数据库 选择 然后 | 更新日期: 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();