从 informix DB 填充我的下拉列表时遇到问题
Posted
技术标签:
【中文标题】从 informix DB 填充我的下拉列表时遇到问题【英文标题】:Having trouble populating my drop down list from informix DB 【发布时间】:2013-02-18 16:31:59 【问题描述】:无法填充下拉列表。谁能帮忙,可能是一些关于我的错误的教程?我不完全了解如何填充我的数据源。对 C# 或 ASP.Net 来说很新,所以对我来说放轻松。
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;
【问题讨论】:
你还没有把结果放在_newList
,你需要阅读SQL注入和使用参数化查询而不是SQL连接!
【参考方案1】:
看起来您实际上并未在此代码中的任何位置绑定下拉菜单。你需要做这样的事情:
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" />
【讨论】:
当我添加 dropdown1.dataBind() 它给了我这个错误。 "DataBinding: 'System.Char' 不包含名为 'doc_path' 的属性。" 如果有帮助的话,我也在使用informix DB。 该错误表明您正在尝试将字符串绑定到 DropDown(查询结果)。尝试绑定阅读器:DropDown1.DataSource = MapResult; @freddy 谢谢,在我回到这个页面之前我就想通了。以上是关于从 informix DB 填充我的下拉列表时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章