Asp.net 删除查询说它没有参数

Asp.net 删除查询说它没有参数,asp.net,database,Asp.net,Database,我有一个Gridview控件,我试图允许用户使用delete按钮从数据库中删除记录。当我单击delete按钮时,它告诉我该参数没有值。以下是相关的标记: <asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/webvideos.mdb" SelectCommand="SELECT Org_Sec_Atty.ID, ORGANIZATIONS.ORG_NAME, O

我有一个Gridview控件,我试图允许用户使用delete按钮从数据库中删除记录。当我单击delete按钮时,它告诉我该参数没有值。以下是相关的标记:

<asp:AccessDataSource ID="AccessDataSource1" runat="server" 
    DataFile="~/App_Data/webvideos.mdb" 
    SelectCommand="SELECT Org_Sec_Atty.ID, ORGANIZATIONS.ORG_NAME, ORG_SECTIONS.SectionName, ATTORNEYS.NAME, ATTORNEYS.LASTNAME, ATTORNEYS.EMAIL, ATTORNEYS.TEL
         FROM (ORGANIZATIONS INNER JOIN (Org_Sec_Atty INNER JOIN ATTORNEYS ON Org_Sec_Atty.Atty_ID = ATTORNEYS.ATTY_ID) ON ORGANIZATIONS.ID = Org_Sec_Atty.OrgID) INNER JOIN ORG_SECTIONS ON Org_Sec_Atty.SecID = ORG_SECTIONS.ID;"
    DeleteCommand="DELETE FROM Org_Sec_Atty WHERE ID = ?">
    <DeleteParameters>
        <asp:Parameter Name="ID" Type="Int32" />
    </DeleteParameters>
</asp:AccessDataSource>

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" PageSize="20" 
    AllowSorting="True" DataSourceID="AccessDataSource1" >
    <Columns>
        <asp:CommandField ShowDeleteButton="True" />
        <asp:BoundField DataField="ID" HeaderText="ID" SortExpression="ID" />
        <asp:BoundField DataField="ORG_NAME" HeaderText="Organization" SortExpression="ORG_NAME" />
        <asp:BoundField DataField="SectionName" HeaderText="Section" SortExpression="SectionName" />
        <asp:BoundField DataField="NAME" HeaderText="First Name" SortExpression="NAME" />
        <asp:BoundField DataField="LASTNAME" HeaderText="Last Name" SortExpression="LASTNAME" />
        <asp:BoundField DataField="EMAIL" HeaderText="E-mail" SortExpression="EMAIL" />
        <asp:BoundField DataField="TEL" HeaderText="Phone" SortExpression="TEL" />
    </Columns>
</asp:GridView>


起初我忘记在SELECT语句中包含Org_secu Atty.ID,后来我单击delete按钮时将其添加到该语句中,但什么也没发生。我试图清除浏览器缓存,但没有成功。还有其他想法吗?

我认为您还需要在gridview中设置DataKeyNames属性:

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" PageSize="20" 
    AllowSorting="True" DataSourceID="AccessDataSource1" DataKeyNames="ID" >


这应该能帮你解决问题。

在点击按钮设置删除参数时,你不会显示任何代码。嗯。。。我以为这已经结束了。比如,我认为delete按钮引用了数据源中的delete查询。我忘了在gridview控件中添加'DataKeyName=“ID”“。抱歉-在我将此添加到控件中时,刚刚发现了您的进一步评论。你似乎已经自己解决了。我仍然会将它标记为已回答,以便人们可以看到正确的答案。