我需要为我的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
存在问题,但我不知道是什么。
答案 0 :(得分:1)
DataKeyNames应设置为
DataKeyNames="Column1,Id"
这个问题已修复