我创建的系统基本上允许用户根据数据库选择标准,以便制定SQL查询并运行它们以将数据输出到Excel。我目前正在尝试创建允许用户从他们在上一步中选择的表中选择列的功能。我已尝试使用转发器控件,但无法使其正常工作,因此我所做的是使用runat =" server"作为容器和代码隐藏我有一个字符串列表,存储用户从上一步中的两个下拉列表中选择的所有表。我目前的代码如下:
SelectedTables.Add(PrimaryTableList.SelectedItem.Text);
foreach (ListItem table in SecondaryTableList.Items)
{
if (table.Selected)
{
SelectedTables.Add(table.Text);
}
}
string connStr = ConfigurationManager.ConnectionStrings["umbracoDbDSN"].ConnectionString;
SqlConnection msSQLconnection = new SqlConnection(connStr);
if (msSQLconnection.State == ConnectionState.Closed)
{
msSQLconnection.Open();
}
foreach (String tableName in SelectedTables)
{
ListBox ColumnsList = new ListBox();
AvailableFieldsDiv.InnerHtml += "<p>" + tableName + "</p>";
AvailableFieldsDiv.Controls.Add(ColumnsList);
SqlCommand msSqlCommand = new SqlCommand("exec sp_columns '" + tableName + "'", msSQLconnection);
SqlDataAdapter msSqlAdapter = new SqlDataAdapter(msSqlCommand);
DataSet myDataSet = new DataSet();
msSqlAdapter.Fill(myDataSet);
ColumnsList.DataSource = myDataSet;
ColumnsList.DataBind();
}
if (msSQLconnection.State == ConnectionState.Open)
{
msSQLconnection.Close();
}
我对此代码的问题在于,当我尝试创建ListBox并将其添加到容器div时,我收到错误声明&#34;无法获取AvailableFieldsDiv的内部内容,因为内容不是。字面&#34;或者,我也在考虑使用复选框列表而不是列表框,因为这样可以让用户一次选择多个列。提前谢谢。