C# 如何根据项目文本自动选择dropdownlist项目?

C# 如何根据项目文本自动选择dropdownlist项目?,c#,C#,我已将leaveID、leavename和type name保存到我的数据库中 现在,当我选择leaveID时,我想填充LeaveNameTextBox并自动键入namedropdownlist。问题是,当我选择dropdownlist LeaveID时,Leave Nametextbox会自动填充,但typenamedropdown列表不会填充。我的ddlid\u SelectedIndexChanged事件处理程序是 protected void ddlid_SelectedIndexCha

我已将leaveID、leavename和type name保存到我的数据库中

现在,当我选择leaveID时,我想填充LeaveNameTextBox并自动键入namedropdownlist。问题是,当我选择dropdownlist LeaveID时,Leave Nametextbox会自动填充,但typenamedropdown列表不会填充。我的ddlid\u SelectedIndexChanged事件处理程序是

protected void ddlid_SelectedIndexChanged(object sender, EventArgs e)
{
    string str = "select leavename from LeaveType where leaveID='" + 
                 ddlid.SelectedItem.Text + "'";

    SqlDataReader dr = conn.query(str);
    if (dr.Read())
    {
        txtid.Text = dr[0].ToString();//VALUE FILLS AUTOMATICALLY ACCORDING TO SELECTED ID
    }

    string str1 = "select TypeName from Leavetype where LeaveID='"+
                  ddlid.SelectedItem.Text+"'";

    SqlDataReader dr1 = conn.query(str1);
    if (dr1.Read())
    {
        ddltype.SelectedItem.Text= dr1[0].ToString();//VALUE NOT FILLS AUTOMATICALLY ACCORDING TO SELECTED ID
    }
}
试试这个:

ddlType.SelectedValue = ddlType.Items.FindByText(dr1[0].ToString()).Value;

此外,您还应该听取Soner关于使用参数化查询的建议,以抵御Sql注入攻击。

您应该始终使用。这种类型的字符串连接对攻击是开放的。你调试代码了吗?您的dr1[0]在调试器中是什么样子的?最好在您的情况下使用ExecuteScalar,它将第一行的第一列作为对象返回。根据您的标题,您希望填写一个下拉列表,但代码显示您试图根据另一个下拉列表中的选择设置选定值。此外,您的代码显示ddlid_SelectedIndexChanged事件处理程序,而不是单击按钮。抱歉Matty M可能重复,而不是按钮单击它是ddlid\u SelectedIndexChanged事件处理程序。是当我从下拉列表中选择休假id时,我想自动填写休假名称并键入名称。我已经在数据库中添加了这个值,现在是为了更新。@DwaneMarsh是您在dr1[0]中提取的值,已经在下拉列表项集合中了吗?是的,Matty M,它已经在那里了