C# 用列的名称填充列表框或复选框列表
我正在创建一个系统,该系统基本上允许用户基于数据库选择标准,以便制定SQL查询并运行它们以将数据输出到excel。我目前正在尝试创建一种功能,允许用户从上一步中选择的表中选择列。我曾尝试使用repeater控件来实现此目的,但无法使其正常工作,因此我所做的是创建一个div,并使用runat=“server”作为容器,在后面的代码中,我有一个字符串列表,用于存储用户在上一步中从两个下拉列表中选择的所有表。我目前拥有的代码如下:C# 用列的名称填充列表框或复选框列表,c#,asp.net,sql-server,C#,Asp.net,Sql Server,我正在创建一个系统,该系统基本上允许用户基于数据库选择标准,以便制定SQL查询并运行它们以将数据输出到excel。我目前正在尝试创建一种功能,允许用户从上一步中选择的表中选择列。我曾尝试使用repeater控件来实现此目的,但无法使其正常工作,因此我所做的是创建一个div,并使用runat=“server”作为容器,在后面的代码中,我有一个字符串列表,用于存储用户在上一步中从两个下拉列表中选择的所有表。我目前拥有的代码如下: SelectedTables.Add(PrimaryT
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();
}
SelectedTables.Add(PrimaryTableList.SelectedItem.Text);
foreach(SecondaryTableList.Items中的ListItem表)
{
如果(选定的表格)
{
选择表格。添加(表格。文本);
}
}
字符串connStr=ConfigurationManager.ConnectionString[“umbracoDbDSN”]。ConnectionString;
SqlConnection-msSQLconnection=newsqlconnection(connStr);
if(msSQLconnection.State==ConnectionState.Closed)
{
msSQLconnection.Open();
}
foreach(SelectedTables中的字符串tableName)
{
ListBox ColumnsList=新建ListBox();
AvailableFieldsDiv.InnerHtml+=“”+tableName+””;
AvailableFieldsDiv.Controls.Add(ColumnsList);
SqlCommand-msSqlCommand=newsqlcommand(“exec sp_columns'+tableName+”,msSQLconnection);
SqlDataAdapter msSqlAdapter=新的SqlDataAdapter(msSqlCommand);
DataSet myDataSet=新数据集();
msSqlAdapter.Fill(myDataSet);
ColumnsList.DataSource=myDataSet;
ColumnsList.DataBind();
}
if(msSQLconnection.State==ConnectionState.Open)
{
msSQLconnection.Close();
}
我在这段代码中遇到的问题是,当我尝试创建ListBox并将其添加到容器div时,我会收到一个错误,声明“无法获取AvailableFieldsDiv的内部内容,因为内容不是文字。”,我还考虑使用复选框列表而不是列表框,因为这将允许用户一次选择多个列。提前感谢。检查这是从HTML表中提取值。我正试图从选定的SQL表中获取列名,并将该列名列表用作动态创建的列表框或复选框列表的数据源。