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