繁体   English   中英

将动态下拉列表值(每一行)从 gridview 插入表

[英]Insertion Of dynamic dropdownlist values(of each row) from a gridview to tables

//aspx中的代码

   </asp:TemplateField>
        :
        :
        :
   <ItemTemplate>
   <asp:DropDownList ID="didDdl" runat="server" 
    DataSourceID="departmentsDataSource" 
    DataTextField="Department" 
    DataValueField="DepartmentID" 
    SelectedValue='<%# Bind("DepartmentID") %>' 
    Enabled="False" />
   </ItemTemplate>
   </asp:TemplateField>

问:我必须一次将选定的下拉列表项插入到表中,即当我单击提交按钮(此处未显示)时,所有选定的值都应一次 go 到表中。

我的假设是您使用的是 Gridview。 所以这会起作用。

protected void btnSubmit_Click(object sender, EventArgs e)
{
    List<string> lst = new List<string>();

    foreach(GridViewRow gvr in GridView1.Rows)
    {
        if (gvr.RowType == DataControlRowType.DataRow)
        {
            lst.Add(((DropDownList)gvr.FindControl("didDdl")).SelectedValue);
        }
    }
}

即兴解决方案

protected void btnSubmit_Click(object sender, EventArgs e)
{

    SqlCommand comm = new SqlCommand();

    StringBuilder sb = new StringBuilder("INSET INTO [Table] ");

    string template = " SELECT @{0} UNION ALL ";


    foreach(GridViewRow gvr in GridView1.Rows)
    {
        if (gvr.RowType == DataControlRowType.DataRow)
        {
            string value = ((DropDownList)gvr.FindControl("didDdl")).SelectedValue;

            sb.AppendFormat(template, value);
            comm.Parameters.Add(new SqlParameter("@" + value, value));

        }
    }
    comm.CommandText = sb.ToString()

}

您可以从模板列中读取值,然后构建一个插入语句到 SQL 服务器。

以下示例显示如何使用一个插入语句插入多条记录:

INSERT INTO MyTable (FirstCol, SecondCol)
SELECT 'First' ,1
UNION ALL
SELECT 'Second' ,2
UNION ALL
SELECT 'Third' ,3
UNION ALL
SELECT 'Fourth' ,4
UNION ALL
SELECT 'Fifth' ,5
GO

我能想到的最好方法是在 arrayList 中获取值,然后通过 for 循环将值插入 SQL 中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM