删除查询表示它没有参数

时间:2014-08-07 12:31:34

标签: asp.net database

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

<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_Sec_Atty.ID,稍后当我点击删除按钮时没有发生任何事情。我试着清理浏览器缓存而没有运气。还有其他想法吗?

1 个答案:

答案 0 :(得分:1)

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

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

这应该可以解决你的问题。