在DropDownList中分离从数据库中检索的项的值

时间:2017-08-03 16:40:15

标签: c# asp.net

我有以下过程用于在DropDownList中显示我的数据库中的“Descricao”值:

public void descricaoEntrada()
    {
        StringBuilder sql = new StringBuilder();
        sql.Append("SELECT [Descricao], [IDEntrada] FROM [dbo].[Entrada] where IDEntradaTipo = 2 order by Descricao");
        SqlConnection connection = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionStringSQL"].ConnectionString);

        try
        {
            connection.Open();
            SqlDataReader dr = Utils.DatabaseManagement.ExecuteReader(sql.ToString(), connection);
            descricao.DataSource = dr;
            while (dr.Read())
            {

                descricao.Items.Add(new ListItem(dr["Descricao"].ToString(), dr["IDEntrada"].ToString()));
            }
        }

        catch (Exception ex)
        {
            throw ex;
        }
        finally
        {
            connection.Close();
        }
    }

我的查询还检索了另一个名为“IDEntrada”的字段,我将其检索到:

descricao.Items.Add(new ListItem(dr["Descricao"].ToString(), dr["IDEntrada"].ToString()));

然后在我的代码中,我试图通过命令检索“Descricao”的值和“IDEntrada”的值:

descricao.Text

但唯一可以检索的是“IDEntrada”的价值,我希望能够分别恢复“IDEntrada”和价值“Descricao”

我想在变量中单独检索值。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

您不需要以下行。

descricao.DataSource = dr; //remove this line

您将Descricao设置为下拉选项的文本,将IDEntrada设置为其值。

因此,在您的情况下,要获取所选项目的文本(即Descricao),请使用:

descricao.SelectedItem.Text

要获取所选项目的值(即IDEntrada),请使用:

descricao.SelectedItem.Value 

descricao.SelectedValue