猿问

在下拉菜单选择更改时从数据库中获取值

我正在调用一种方法来填充 asp.net 网络表单中的下拉菜单。该方法调用检索名称列表的存储过程。它还从数据库中检索成员 ID。所有这一切都很好,但是,我需要成员 ID 字段随着下拉菜单中的每个关联名称而更改。例如,我从下拉列表中选择名称 Barney Fife,它返回成员 ID '1'。问题是当我从下拉列表中选择不同的名称时 - 会员 ID 没有改变。这是我检索数据的 C# 方法:


        public void GetMemberName()

    {

        try

        {

            using (SqlConnection con = new SqlConnection(constr))

            {

                using (SqlCommand cmd = new SqlCommand("dbo.spGetMemberNames", con))


                {

                    con.Open();

                    using (SqlDataAdapter sda = new SqlDataAdapter(cmd))

                    { 

                        sda.Fill(ds); // ds is declared in the scope.

                        cmbNames.DataSource = ds;

                        cmbNames.DataTextField = "FormattedName";

                        cmbNames.DataValueField = "FormattedName";                    


                        cmbNames.DataBind();                            

                    }

                    using (SqlDataReader read = cmd.ExecuteReader())

                    {

                        while (read.Read())

                        {

                            lblMemberID.Text = (read["MemberID"].ToString()); // Places the member ID associated with the name in a label.

                        }

                    }

                }

            }

        }

        catch (Exception ex)

        {

            lblError.Text = ex.ToString();

        }

    }

这是我的存储过程:


CREATE PROCEDURE [dbo].[spGetMemberNames]


AS

BEGIN

        SELECT FirstName + ' ' + LastName [FormattedName],MemberID

        FROM tblMembers

        ORDER BY LastName

END

我是否需要调用一个完全不同的方法和存储过程来连接到数据库并根据 DropDown SelectedIndexChange 上的 FormattedName(来自我的存储过程)查找成员 ID?

大话西游666
浏览 136回答 2
2回答

HUH函数

这太容易了。这是解决方案:protected void cmbNames_SelectedIndexChanged(object sender, EventArgs e){    string value = cmbNames.SelectedValue;    lblMemberID.Text = value;}

犯罪嫌疑人X

将下拉列表的 autopostback 属性设置为 true。
随时随地看视频慕课网APP
我要回答