2017-08-03 11 views
0

我有一個服務於一個DropDownList顯示下面的過程中我的數據庫中的「Descricao」值:分離在一個DropDownList從數據庫中檢索到的商品的價值

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

注意:你的catch塊沒有任何用處,實際上是從第例外。它應該完全刪除。 – David

+0

好的!謝謝。我刪除了。 –

回答

1

您不需要以下行。

descricao.DataSource = dr; //remove this line 

要設置Descricao爲您的下拉選項的文本和IDEntrada作爲其值。

所以你的情況,得到所選項目的文本(即Descricao)使用方法:

descricao.SelectedItem.Text 

,並獲得所選項目的值(即IDEntrada)使用方法:

descricao.SelectedItem.Value 

descricao.SelectedValue 
+0

謝謝!有效! –

+0

歡迎您:) – Soham

相關問題