2013-03-04 59 views
1

無法填充下拉列表。任何人都可以幫助,可能一些教程對我的錯誤?我不明白如何填充我的數據源。對C#或ASP.Net來說很新,所以對我來說很簡單。從informix DB填充我的下拉列表時遇到問題

protected void Button1_Click(object sender, EventArgs e) 
{ 
    List<string> _newList = new List<string>(); 
    if (TextBox1.Text != null) 
    { 
     OdbcDataReader MapResult; //Data Reader 
     Database db = new Database(); 
     string lat = ""; 
     string sql = " SELECT 
          informix.dbimg_mstr_rec.doc_path 
         FROM 
          informix.dbimg_mstr_rec 
         WHERE 
          informix.dbimg_mstr_rec.doc_key 
           = '" + TextBox1.Text + "'"; 
     try 
     { 

      MapResult = db.ExecQuery(sql, timeOut); 
      if (MapResult.Read()) 
      {    
       lat = MapResult["doc_path"].ToString();    
       DropDown1.DataSource = _newList; 
       DropDown1.DataTextField = "doc_path"; 
       DropDown1.DataValueField = "doc_path"; 
       form1.Controls.Add(DropDown1); 
      } //end if 
      MapResult.Close(); 
      db.CloseConnection(); 
      //end while 
     }//end try 
     catch (OdbcException ex) 
     { 
      errList.Add("[User] Error 109: " + ex.Message); 
     } //end catch 
     return; 
    } //end if 
    else 
     return; 
    } 
+2

你還沒有把結果放在'_newList'中,你需要閱讀SQL注入和使用參數化查詢而不是SQL連接! – 2013-03-04 14:47:12

回答

0

它看起來並不像你實際上在這個代碼中的任何地方綁定下拉列表。你需要做這樣的事情:

DropDown1.DataTextField = "doc_path"; 
DropDown1.DataValueField = "doc_path"; 
DropDown1.DataSource = dr.ExecuteReader(); 
DropDown1.DataBind(); 

或者,你都可以在你的頁面的標記使用SqlDataSource控件做到這一點。

<asp:SqlDataSource 
     id="SqlDataSource1" 
     runat="server" 
     DataSourceMode="DataSet" 
     ConnectionString="myConnString" 
     SelectCommand="myStoredProcedure" 
     > 
    </asp:SqlDataSource> 

    <asp:MyDropDownList id="DropDown1" runat="server" DataSource="SqlDataSource1" 
     DataTextField="COLUMN_NAME" DataValueField="COLUMN_NAME" /> 
+0

當我添加dropdown1.dataBind()它給了我這個錯誤。 「DataBinding:'System.Char'不包含名稱爲'doc_path'的屬性。」} – user1794601 2013-03-04 15:34:30

+0

另外我使用的是informix數據庫(如果有幫助的話)。 – user1794601 2013-03-04 15:52:35

+1

該錯誤顯示您正在嘗試將字符串綁定到DropDown(查詢的結果)。嘗試綁定閱讀器,而不是:DropDown1.DataSource = MapResult; – MaxSC 2013-03-04 16:11:36