我正在尝试填充下拉列表控件。 '输入'是数据库。表是'ApplicationName',它有一个随机值。
出于某种原因,当我单击“测试提交”按钮时,控件中没有任何内容出现(DropDownList1)。
protected void TestSubmit_ServerClick(object sender, EventArgs e)
{
// Initialize the database connector.
SqlConnection connectSQL = new SqlConnection();
// Send the connection string.
connectSQL.ConnectionString = @"Data Source = localhost\SQLEXPRESS;" +
"Initial Catalog = Inputs; Integrated Security = SSPI";
try
{
// Setup our command.
SqlCommand theCommand = new SqlCommand("SELECT * FROM Inputs", connectSQL);
// Write the stored value in the text boxes.
connectSQL.Open();
SqlDataReader theReader;
theReader = theCommand.ExecuteReader();
theReader.Read();
DropDownList1.Items.Add(theReader["ApplicationName"].ToString());
theReader.Close();
connectSQL.Close();
}
catch (Exception ee)
{
MessageBox("Oopsie: " + ee);
}
答案 0 :(得分:4)
您是否考虑过使用SqlDataSource?对于你来说,维护和防范缺陷的代码要少得多。
<asp:DropDownList id="DropDownList1"
runat="server"
DataTextField="ApplicationName"
DataValueField="ApplicationName"
DataSourceID="AppDataSource">
</asp:DropDownList>
<asp:SqlDataSource
id="AppDataSource"
runat="server"
DataSourceMode="DataReader"
ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
SelectCommand="SELECT ApplicationName FROM Inputs">
</asp:SqlDataSource>
答案 1 :(得分:0)
我想你想做一段时间(reader.read())
然后填充类似数据集或列表的内容,然后将下拉列表数据源设置为数据集或列表。
答案 2 :(得分:0)
如果您的表名是“ApplicationName”......您的SQL语句不应该是SELECT * FROM ApplicationName
吗?您是否尝试过查看您的读者是否有任何结果?
答案 3 :(得分:0)
如果将数据库查询中选择的列与DropDownList定义中的DataTextField和DataValueField匹配,则只需执行以下操作:
DropDownList1.DataSource = theReader;
DropDownList1.DataBind()
甚至
DropDownList1.DataSource = theCommand.ExecuteReader();