2010-11-21 103 views
0

我有一個下拉列表,顯示從我的數據庫獲取asp.net中選定值

public void ShowCountries() 
    { 
     OdbcConnection conn; 
     conn = new OdbcConnection(ConfigurationManager.ConnectionStrings["jConnString"].ConnectionString); 
     conn.Open(); 
     string sql = "SELECT iso,printable_name FROM country"; 

     OdbcCommand cmd = new OdbcCommand(sql, conn); 


     try 
     { 
      //ddlCountry.DataSourceID = "country"; 
      ddlCountry.DataSource = cmd.ExecuteReader(); 
      ddlCountry.DataTextField = "printable_name"; 
      ddlCountry.DataValueField = "iso"; 
      ddlCountry.DataBind(); 
     } 
     catch (Exception ex) 
     { 
      Check.Text = "3" + ex.Message; 
     } 
     finally 
     { 
      ddlCountry.Dispose(); 
      conn.Close(); 
      conn.Dispose(); 
     } 

    } 

在aspx文件的國家名單,這是我如何把這個databounded列表

<asp:DropDownList ID="ddlCountry" runat="server" 
DataTextField="printable_name" 
DataValueField="iso"> 
    </asp:DropDownList> 
方式

它顯示列表,但如果我想選擇一個選項,然後第一個它總是插入的第一個選項的價值en從來沒有選擇一個,我做錯了什麼?

+0

你如何在代碼中選擇一個選項? – 2010-11-21 13:49:59

回答

0

這聽起來像數據源正在(重新)綁定到控件,然後再訪問選定的值,因此選定的值始終是數據源中的第一個值。

何時何地ShowCountries被叫?在猜測,我會說你失蹤了IsPostback檢查中Page_Load

if (!IsPostback) { 
    // bind the datasource here, when the page initially loads 
    ShowCountries(); 
} 

另外,我不認爲你想在finally塊調用Dispose()ddlCountry