0

アプリケーションのグループのリストを表示するページがあります。グループには複数のユーザーがいる可能性があります。グループリストはグリッドビューで実装されます。グループの説明の列に加えて、gridviewにはユーザーを追加するためのボタンがあります。このボタンをクリックすると、グループIDが新しいページに渡されます。このページには、ユーザーのリストを含む別のグリッドビューがあります。グリッドビューには、その特定のユーザーをグループのグループIDに追加するためのボタンフィールドもあります。このために、追加のテーブルがあります。

ユーザー・グループ

usergroupid
userid
groupid

私の問題は、このテーブルに何も挿入されず、挿入コマンドが実行されますが、何かが欠落しているようです。

これが私のコードです:

マークアップ:

<asp:Content ID="content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">           
            <asp:GridView OnRowCommand="grdBenutzer_RowCommand" ID="grdBenutzer" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1">
                <Columns>
                    <asp:BoundField ReadOnly="true" DataField="BenutzerID" HeaderText="ID" />                   
                    <asp:TemplateField HeaderText="Bezeichnung">
                        <ItemTemplate>
                            <%# Eval("Bezeichnung")%>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:DropDownList AppendDataBoundItems="true" runat="server" ID="ddwnBezeichnung" Text='<%# Bind("Bezeichnung")%>'>
                                <asp:ListItem Text="Mitarbeiter" Value="Mitarbeiter"></asp:ListItem>
                                <asp:ListItem Text="Praktikant" Value="Praktikant"></asp:ListItem>
                                <asp:ListItem Text="Azubi" Value="Azubi"></asp:ListItem>
                                <asp:ListItem Text="Umschüler" Value="Umschüler"></asp:ListItem>
                            </asp:DropDownList>
                        </EditItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Vorname">
                        <ItemTemplate>
                            <%# Eval("Vorname")%>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox runat="server" ID="txtVorname" Text='<%# Bind("Vorname")%>' />
                        </EditItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Nachname">
                        <ItemTemplate>
                            <%# Eval("Nachname")%>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox runat="server" ID="txtNachname" Text='<%# Bind("Nachname")%>' />
                        </EditItemTemplate>
                    </asp:TemplateField>
                    <asp:BoundField ReadOnly="true" HeaderText="Geburtsdatum" DataField="Geburtsdatum" />                    
                    <asp:TemplateField HeaderText="Benutzerart">
                        <ItemTemplate>
                            <%# Eval("Benutzerart")%>
                        </ItemTemplate>                        
                    </asp:TemplateField>
                    <asp:ButtonField ButtonType="Button" HeaderText="Mitglied hinzufügen" Text="Mitglied hinzufügen" CommandName="MitgliedHinzufuegen" />
                </Columns>              
            </asp:GridView>
         <asp:SqlDataSource OnInserted="SqlDataSource1_Inserted" ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
            SelectCommand="SELECT [BenutzerID], [Bezeichnung], [Vorname], [Geburtsdatum], [Nachname], [Benutzerart] FROM [Benutzer] WHERE [Archiviert] != 1"
             InsertCommand="INSERT INTO BenutzerGruppe (BenutzerID, GruppenID) VALUES (@BenutzerID, @GruppenID)">                        
         </asp:SqlDataSource>
</asp:Content>

コードビハインド:

protected void SqlDataSource1_Inserted(object sender, SqlDataSourceStatusEventArgs e)
{
            Response.Redirect("Gruppenverwaltung.aspx");
}

protected void grdBenutzer_RowCommand(object sender, GridViewCommandEventArgs e)
{
            if (e.CommandName == "MitgliedHinzufuegen")
            {
                string gruppenid = Request.QueryString["GruppenID"];
                SqlDataSource1.InsertParameters.Add("GruppenID", gruppenid);               
                SqlDataSource1.Insert();
            }
}

挿入されたメソッドは、ユーザーをグループに追加した後に起動しますが、グループのメンバーを表示すると、ユーザーは追加されませんでした...。

4

1 に答える 1

0

挿入コマンドは、分離コードで提供していないように見える入力パラメーター @BenutzerID を想定しています。

于 2013-03-21T14:57:24.973 に答える