[英]dropdownlist not fetching values from table on OnSelectedIndexChanged
am trying to fetch values from database table on dropdownlist value change and display them in textbox. 正在尝试从dropdownlist值更改的数据库表中获取值,并将其显示在文本框中。 While selecting any value from the dropdownlist the page is refreshing but no values are displaying in the textbox and following are the codes:
从下拉列表中选择任何值时,页面将刷新,但文本框中未显示任何值,以下是代码:
Default.aspx Default.aspx的
<asp:DropDownList ID="DropDownList1" runat="server" AppendDataBoundItems="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" AutoPostBack="true">
<asp:ListItem Text="<Select Subject>" Value="0" />
</asp:DropDownList>
Default.aspx.cs Default.aspx.cs
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
string ddl2value = DropDownList1.SelectedValue.ToString();
// fillDropdown3(ddl3, ddl2value);
SqlConnection objConn2 = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
SqlCommand objCmd2;
SqlDataReader objRdr2;
// String strCmd2;
objConn2.Open();
objCmd2 = new SqlCommand("SELECT code, rank, address FROM agen_mast WHERE name = " +
"'" + ddl2value.ToString() + "'", objConn2);
objRdr2 = objCmd2.ExecuteReader();
while (objRdr2.Read())
{
TextBox9.Text = (string)objRdr2["code"].ToString();
TextBox8.Text = (string)objRdr2["address"].ToString().ToUpper();
TextBox10.Text = (string)objRdr2["rank"].ToString().ToUpper();
}
objRdr2.Close();
objConn2.Close();
// Response.Write(ddl2value.ToString());
}
You could try something like this: 您可以尝试这样的事情:
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
if(DropDownList1.SelectedValue !="-1"){
string ddl2value = DropDownList1.SelectedValue.ToString();
SqlConnection objConn2 = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
SqlCommand objCmd2;
SqlDataReader objRdr2;
objConn2.Open();
objCmd2 = new SqlCommand("SELECT code, rank, address FROM agen_mast WHERE name = " +
"'" + ddl2value + "'", objConn2);
objRdr2 = objCmd2.ExecuteReader();
while (objRdr2.Read())
{
TextBox9.Text = (string)objRdr2["code"].ToString();
TextBox8.Text = (string)objRdr2["address"].ToString().ToUpper();
TextBox10.Text = (string)objRdr2["rank"].ToString().ToUpper();
}
objRdr2.Close();
objConn2.Close();
}
}
And add a dummy ListItem
with Value
-1
as the first item in the DropDownList1
in the .aspx
side. 并添加一个虚拟
ListItem
与Value
-1
在作为第一个项目DropDownList1
中.aspx
侧。 By the way, make sure you are sending the correct parameter to SqlCommand
. 顺便说一句,请确保将正确的参数发送到
SqlCommand
。 Right now you are looking for a record with Name
= 0
. 现在,您正在寻找
Name
= 0
的记录。 Also, ddl2Value
is already of type string
so you don't need to call ToString()
inside SqlCommand
另外,
ddl2Value
已经是string
类型,因此您无需在SqlCommand
调用ToString()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.