如何在Asp.Net中的GridView中使用delete

如何在Asp.Net中的GridView中使用delete,asp.net,Asp.net,我需要一种方法来获取在数据绑定GridView中单击Delete按钮的行的列的值。数据绑定GridView中的值是来自链接表的值,在其中一行上单击Delete后,我希望从数据库中删除该条目 这是我的网格视图 <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False" DataSourceID="SqlDataSource

我需要一种方法来获取在数据绑定GridView中单击Delete按钮的行的列的值。数据绑定GridView中的值是来自链接表的值,在其中一行上单击Delete后,我希望从数据库中删除该条目

这是我的网格视图

<asp:GridView 
    ID="GridView1" 
    runat="server" 
    AllowPaging="True" 
    AutoGenerateColumns="False" 
    DataSourceID="SqlDataSource1"
    DataKeyNames="Session[userId'],courseId"  //< ? for 'userId'
    style="z-index: 1; left: 222px; top: 139px; position: absolute; height: 299px; width: 458px">
    <Columns>
        <asp:CommandField ShowDeleteButton="True" />
        <asp:BoundField DataField="department" HeaderText="Department" SortExpression="department" />
        <asp:BoundField DataField="courseCode" HeaderText="Course" SortExpression="courseCode" />
        <asp:BoundField DataField="courseName" HeaderText="Name" SortExpression="courseName" />
    </Columns>
</asp:GridView>
这是我目前正在进行的SQLDataSource工作。我需要上面的courseCode和courseName值从不同的表中选择一个唯一的courseId,我使用该courseId和会话变量session[userId]从我的表中删除条目,从而更新我的GridView

这里必须指出,我的select语句只接受一个变量,它使用Session[userId],而我的delete语句不仅使用Session[userId],它还使用另外两个变量

<asp:SqlDataSource 
        ID="SqlDataSource1" 
        runat="server" 
        ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
        SelectCommand="GetPreviouslyTakenCourses" 
        SelectCommandType="StoredProcedure"
        DeleteCommand="DELETE FROM UserHasCourse WHERE UserHasCourse.userId=@userId AND (SELECT Id FROM Courses WHERE courseCode=@courseCode AND courseName=@courseName)">
        <SelectParameters>
            <asp:SessionParameter DefaultValue="1" Name="userId" SessionField="userId" Size="10" Type="Int32" />
        </SelectParameters>
        <DeleteParameters>
            <asp:SessionParameter Name="userId" SessionField="userId" />
            <asp:Parameter Name="courseCode" />
            <asp:Parameter Name="courseName" />
        </DeleteParameters>
    </asp:SqlDataSource>
我知道我遗漏了一些东西,如果需要更多信息,我可以更新我的问题

更新1:需要将DataKeyName移动到GridView中。另外一个问题是如何将会话变量传递到DataKeyName中

更新2:ControlID已删除。ControlParameter更改为SQLDataSource内的参数是否正确

更新3:我是否能够在select查询中获取与会话[userId]相等的userId值,并将其隐藏,从而能够在delete语句中使用它