从级联下拉框选择中将多行插入SQL Server数据库

时间:2013-10-10 19:10:41

标签: c# asp.net sql-server

我有一个我需要修改的页面。该页面是由另一位开发人员编写的。该页面已经有一个组合框和功能,允许用户选择一个作者的名字,点击一个按钮,然后将该作者的名字添加到他们的愿望清单中。我需要添加另一个显示库类型的组合框,显示与该类型相关的作者,然后允许用户单击按钮并将所有这些作者添加到他们的阅读愿望清单中。这是包含作者和类型组合框的代码以及我试图在选择类型时插入所有作者的脚本:

<asp:DropDownList ID="ddlGenres" runat="server" DataSourceID="SqlDataSourceLibros" 
     DataTextField="Genre_Name" DataValueField="GenreID" 
     onselectedindexchanged="genreList_SelectedIndexChanged" AutoPostBack="True" AppendDataBoundItems="true">
    <asp:ListItem Value="0">Groups</asp:ListItem>
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource1Libros" runat="server" 
        ConnectionString="<%$ ConnectionStrings:Libros %>" 
        SelectCommand="SELECT [GenreID],[Genre_Name] FROM [Library_Genres] ORDER BY [Genre_Name]">        
</asp:SqlDataSource>
<asp:DropDownList ID="DropDownList1" runat="server" AppendDataBoundItems="True" 
        DataSourceID="SqlDataSourceLibros2" DataTextField="Author_Name"  EnableViewState="false"
        DataValueField="Genre_Name">
</asp:DropDownList>
<asp:ImageButton ImageUrl="~/buttons/addGenre.png" Height="18px"  
          OnMouseOver="this.src='../buttons/addGenreHover.png'" 
          OnMouseOut="this.src='../buttons/addGenre.png'" 
          ToolTip="Add Library Genre" runat="server"  ID="btnAddGenre"  
          OnClick="btnAddGenre_Click" />
<asp:SqlDataSource ID="SqlDataSource2" runat="server" 
        ConnectionString="<%$ ConnectionStrings:Libros %>"         
        SelectCommand="SELECT [Author_Name] FROM [Library_authors] WHERE ([Genre_Name] = @Genre_Name)">
   <SelectParameters>
       <asp:ControlParameter ControlID="ddlGroups" Name="Author_Name" 
                PropertyName="SelectedValue" Type="String" />
   </SelectParameters>
</asp:SqlDataSource>

现在点击按钮调用脚本:

protected void btnAddAuthors(object sender, EventArgs e)
{
        odsAuthors.Insert();
        AuthorList.ClearSelection();
        Response.Redirect(Request.Url.AbsoluteUri);
}

protected void btnAddGenre(object sender, EventArgs e)
{
        SqlDataSourceLibros2.Insert();
        ddlGenres.ClearSelection();
        Response.Redirect(Request.Url.AbsoluteUri);
}

我的问题是,当我点击Add Genres按钮时,添加单个作者的事件会被插入 - 而不是所有出现在组合框中的作者 - 取决于选择的类型。

如何在单击AddAuthors按钮时将单个作者插入数据库中的作者列表插入到数据库中?

1 个答案:

答案 0 :(得分:0)

检查this answer,你不能使用普通的选择框 - 因为它实际上只有一个值,你应该使用控件进行多次选择,之后 - 你不能用作者填充它们,它们都是选中/选中的然后你将获得C#代码中的所有值,然后你就可以将它们全部插入到