【问题标题】:Insertion Of dynamic dropdownlist values(of each row) from a gridview to tables将动态下拉列表值(每行)从网格视图插入到表中
【发布时间】:2011-06-09 16:44:16
【问题描述】:

//aspx中的代码。

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

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

【问题讨论】:

    标签: c# asp.net gridview drop-down-menu


    【解决方案1】:

    我的假设是您使用的是 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()
    
    }
    

    【讨论】:

      【解决方案2】:

      您可以从模板列中读取值,然后构建一个插入语句到 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
      

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-07-25
          • 1970-01-01
          • 1970-01-01
          • 2013-04-07
          • 2014-01-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多