我有以下过程用于在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”
我想在变量中单独检索值。
我该怎么做?
答案 0 :(得分:1)
您不需要以下行。
descricao.DataSource = dr; //remove this line
您将Descricao
设置为下拉选项的文本,将IDEntrada
设置为其值。
因此,在您的情况下,要获取所选项目的文本(即Descricao
),请使用:
descricao.SelectedItem.Text
要获取所选项目的值(即IDEntrada
),请使用:
descricao.SelectedItem.Value
或
descricao.SelectedValue