Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# dropdownlist未从OnSelectedIndexChanged上的表中获取值_C#_Asp.net - Fatal编程技术网

C# dropdownlist未从OnSelectedIndexChanged上的表中获取值

C# dropdownlist未从OnSelectedIndexChanged上的表中获取值,c#,asp.net,C#,Asp.net,我试图在dropdownlist值更改时从数据库表中获取值,并在文本框中显示它们。从下拉列表中选择任何值时,页面将刷新,但文本框中不会显示任何值,代码如下: Default.aspx <asp:DropDownList ID="DropDownList1" runat="server" AppendDataBoundItems="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" AutoPostBack="t

我试图在dropdownlist值更改时从数据库表中获取值,并在文本框中显示它们。从下拉列表中选择任何值时,页面将刷新,但文本框中不会显示任何值,代码如下:

Default.aspx

<asp:DropDownList ID="DropDownList1" runat="server" AppendDataBoundItems="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" AutoPostBack="true">
    <asp:ListItem Text="<Select Subject>" Value="0" />
</asp:DropDownList>

您可以尝试以下方法:

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();
        }
    }

并在
.aspx
侧的
下拉列表1
中添加一个带有
值的虚拟
列表项
,作为第一项。顺便说一下,请确保将正确的参数发送到
SqlCommand
。现在,您正在查找一条名为
的记录
=
0
。另外,
ddl2Value
已经是
string
类型,因此您不需要在
SqlCommand
中调用
ToString()
,您可以尝试以下操作:

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();
        }
    }

并在
.aspx
侧的
下拉列表1
中添加一个带有
值的虚拟
列表项
,作为第一项。顺便说一下,请确保将正确的参数发送到
SqlCommand
。现在,您正在查找一条名为
的记录
=
0
。另外,
ddl2Value
已经是
string
类型,所以您不需要在
SqlCommand

中调用
ToString()
。然而,如果我记得它是正确的,它应该是选定的文本应具有选定的值。此外,调试并查看在选择更改后您在where子句中放置的值,并确保表中至少有一个匹配的列值。
DropDownList1
中只有一个元素,对吗?如果只有1个元素,那么当你点击时,索引实际上不会改变。我已经看了一会儿asp.net了。然而,如果我记得它是正确的,它应该是选定的文本应具有选定的值。此外,调试并查看在选择更改后您在where子句中放置的值,并确保表中至少有一个匹配的列值。
DropDownList1
中只有一个元素,对吗?如果只有1个元素,那么单击时索引实际上不会更改。