Sql server 使用SQL server中的值动态创建下拉列表

Sql server 使用SQL server中的值动态创建下拉列表,sql-server,vb.net,excel,dynamically-generated,Sql Server,Vb.net,Excel,Dynamically Generated,我想在我的程序中创建一个功能,当我加载excel文件时,它会计算电子表格中的列数,并为每一列动态创建一个下拉列表,以选择其标题,并将其绑定到GridView。来自SQL server的数据将填充下拉列表。我遇到的一些问题是,如何在按钮上输入文件位置?我尝试过用这种方式加载硬编码的位置,但它不起作用 Sub SubmitBtn_Excel(Sender As Object, E As EventArgs) Try Dim MyConnection As Sy

我想在我的程序中创建一个功能,当我加载excel文件时,它会计算电子表格中的列数,并为每一列动态创建一个下拉列表,以选择其标题,并将其绑定到GridView。来自SQL server的数据将填充下拉列表。我遇到的一些问题是,如何在按钮上输入文件位置?我尝试过用这种方式加载硬编码的位置,但它不起作用

Sub SubmitBtn_Excel(Sender As Object, E As EventArgs)
        Try
            Dim MyConnection As System.Data.OleDb.OleDbConnection
            Dim dataSet As System.Data.DataSet
            Dim MyCommand As System.Data.OleDb.OleDbDataAdapter
            Dim path As String = "C:\\spreadsheet.xlsx"

            MyConnection = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0;")
            MyCommand = New System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$]", MyConnection)

            dataSet = New System.Data.DataSet
            MyCommand.Fill(dataSet)
            GridView1.DataSource = dataSet.Tables(0)

            MyConnection.Close()
        Catch ex As Exception

        End Try

    End Sub
我也有一个方法,可以用我创建的表来调用数据库来填充数据,我应该把这个方法和excel调用放在一个方法中吗??考虑到下拉id是动态创建的,它不知道如何找到它,因为它在HTML中没有id

Protected Sub Page_Load(sender As Object, e As EventArgs)
        If Not Page.IsPostBack Then
            FillDeptDropdownList()
        End If
    End Sub
    Protected Sub FillDeptDropdownList()
        Dim con As New SqlConnection(ConfigurationManager.ConnectionStrings("MyDbCon").ConnectionString)

        Dim cmd As New SqlCommand("Select * from demofeepay.dbo.catagories", con)
        Dim adp As New SqlDataAdapter(cmd)
        Dim dt As New DataTable()
        adp.Fill(dt)
        ddlDynamic.DataSource = dt
        ddlDynamic.DataTextField = "catagory"
        ddlDynamic.DataValueField = "ID"
        ddlDynamic.DataBind()
        ddlDynamic.Items.Insert(0, "Select Catagory")

    End Sub
这是我创建下拉列表的方法

Sub SubmitBtn_Excel(Sender As Object, E As EventArgs)
        Try
            Dim MyConnection As System.Data.OleDb.OleDbConnection
            Dim dataSet As System.Data.DataSet
            Dim MyCommand As System.Data.OleDb.OleDbDataAdapter
            Dim path As String = "C:\\Users\\John\\Documents\\John\\EPP\\WorldNet_Notes\\CHRISTIAN_BROTHERS_HIGH_SCHOOL.xlsx"

            MyConnection = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0;")
            MyCommand = New System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$]", MyConnection)

            dataSet = New System.Data.DataSet
            MyCommand.Fill(dataSet)
            GridView1.DataSource = dataSet.Tables(0)

            MyConnection.Close()
        Catch ex As Exception

        End Try

    End Sub
这是HTML

<form id="form1" runat="server" style="overflow-x:hidden; width:100%">
<div>
    <asp:button id="butOK" text="Add Dropdowns" onclick="SubmitBtn_Click" runat="server"/>
    <asp:button id="BtnAddExcel" text="Add Spreadsheet" OnClick="SubmitBtn_Excel" runat="server"/>
</div>
<div id ="ddlDynamic">
<!-- Dynamic Dropdowns -->

    <asp:GridView ID="GridView1" runat="server"></asp:GridView>
</div>
</form>


我知道这里到处都是,你可以看到我有点迷路了。我真的不想有人用勺子给我答案,我只是不知道如何组织它,或者有人能给我指出正确的方向来了解更多。vb新手。提前感谢:-)

首先,您需要在Web表单中添加占位符控件。 您将通过以下方式将下拉列表添加到此占位符:

        foreach (var item in collection)
        {
            DropDownList ddl = new DropDownList();
            lb.Items.AddRange(item.values);
            ddl.ID = "ddl" + (PlaceHolder1.Controls.Count() + 1);
            PlaceHolder1.Controls.Add(ddl);
            PlaceHolder1.Controls.Add(new LiteralControl("<br />"));
        }
foreach(集合中的变量项)
{
DropDownList ddl=新的DropDownList();
lb.Items.AddRange(item.value);
ddl.ID=“ddl”+(占位符1.Controls.Count()+1);
占位符1.控件.添加(ddl);
占位符1.Controls.Add(新的LiteralControl(“
”); }
对于“文件”按钮,您可能需要使用FileUpload控件