您使用哪个参数来检索GridView中的列值?

时间:2013-12-02 16:02:04

标签: asp.net

我需要为我的GridView中显示的结果创建一个删除语句。此delete语句必须使用某些列本身作为delete语句

中的参数

我的网格视图是:

 <asp:GridView 
        ID="GridView1" 
        runat="server" 
        AllowPaging="True" 
        AutoGenerateColumns="False" 
        DataSourceID="SqlDataSource1"
        style="z-index: 1; left: 222px; top: 139px; position: absolute; height: 299px; width: 458px" DataKeyNames="Id">
        <Columns>
            <asp:CommandField ShowDeleteButton="True" />
            <asp:BoundField DataField="Column1" HeaderText="Column1" SortExpression="Column1" ReadOnly="True" Visible="False" />
            <asp:BoundField DataField="Id" HeaderText="Id" SortExpression="Id" ReadOnly="True" Visible="False" />
            <asp:BoundField DataField="department" HeaderText="department" SortExpression="department" />
            <asp:BoundField DataField="courseCode" HeaderText="courseCode" SortExpression="courseCode" />
            <asp:BoundField DataField="courseName" HeaderText="courseName" SortExpression="courseName" />
        </Columns>
    </asp:GridView>

我需要使用&#34; Column1&#34;和&#34; Id&#34;来自我的SELECT查询(存储在一个存储过程中),用于删除&#34;删除&#34;按钮在我的Gridview上被点击。可能发生的问题是我的select语句使用一个主键,但我的delete语句需要两个主键(&#34; Column1&#34;和&#34; Id&#34;),所以我不知道将DataKeyNames设置为的内容。

这是SQLDataSource:

<asp:SqlDataSource 
        ID="SqlDataSource1" 
        runat="server" 
        ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
        SelectCommand="GetPreviouslyTakenCourses" 
        SelectCommandType="StoredProcedure"
        DeleteCommand="DELETE FROM UserHasCourse WHERE UserHasCourse.userId=@Column1 AND UserHasCourse.courseId=@Id"
        DeleteCommandType="Text">
        <SelectParameters>
            <asp:SessionParameter DefaultValue="1" Name="userId" SessionField="userId" Size="10" Type="Int32" />
        </SelectParameters>
        <DeleteParameters>
            <asp:Parameter Name="Column1" Type="Int32" />
            <asp:Parameter Name="Id" Type="Int32" />
        </DeleteParameters>
    </asp:SqlDataSource>

截至目前,当我点击&#34;删除&#34;在GridView上,所以我可以想象我遇到的问题几乎是固定的。我可以想象<asp:Parameter存在问题,但我不知道是什么。

1 个答案:

答案 0 :(得分:1)

DataKeyNames应设置为

DataKeyNames="Column1,Id"

这个问题已修复