Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gridview objectDataSource删除方法故障_Gridview_Objectdatasource - Fatal编程技术网

Gridview objectDataSource删除方法故障

Gridview objectDataSource删除方法故障,gridview,objectdatasource,Gridview,Objectdatasource,我的方法不断地抛出异常,我一辈子都看不出有什么问题。任何帮助都将不胜感激 包含数据源和gridview的manager.aspx页面的HTML <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="ObjectDataSource1" AllowPaging="True" OnSelectedIndexChanged="GridView1_SelectedInde

我的方法不断地抛出异常,我一辈子都看不出有什么问题。任何帮助都将不胜感激

包含数据源和gridview的manager.aspx页面的HTML

    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="ObjectDataSource1" AllowPaging="True"  OnSelectedIndexChanged="GridView1_SelectedIndexChanged1">
     <Columns>
         <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
         <asp:BoundField DataField="DvdID" HeaderText="DvdID" SortExpression="DvdID" />
         <asp:BoundField DataField="DvdTitle" HeaderText="DvdTitle" SortExpression="DvdTitle" />
         <asp:BoundField DataField="DvdCertificate" HeaderText="DvdCertificate" SortExpression="DvdCertificate" />
         <asp:BoundField DataField="DvdPrice" HeaderText="DvdPrice" SortExpression="DvdPrice" />
     </Columns>
 </asp:GridView>

<br />
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" DeleteMethod="DeleteDvd"  InsertMethod="InsertDvd" SelectMethod="GetDvds" TypeName="DvdRepository" UpdateMethod="UpdateDvd" OnSelecting="ObjectDataSource1_Selecting">
    <DeleteParameters>
        <asp:Parameter Name="DvdID" Type="Int32" />
    </DeleteParameters>
    <InsertParameters>
        <asp:Parameter Name="DvdTitle" Type="String" />
        <asp:Parameter Name="DvdCertificate" Type="String" />
        <asp:Parameter Name="DvdPrice" Type="String" />
    </InsertParameters>
    <UpdateParameters>
        <asp:Parameter Name="DvdID" Type="Int32" />
        <asp:Parameter Name="DvdTitle" Type="String" />
        <asp:Parameter Name="DvdCertificate" Type="String" />
        <asp:Parameter Name="DvdPrice" Type="String" />
    </UpdateParameters>

终于明白了。忘记将DataKeyNames=“DvdID”放在gridview属性中。

数据源已连接到“所有我的方法”,我确信我在以前的网站中使用过此删除方法,但每次都会引发异常。非常新的asp.net,谢谢。
public void DeleteDvd(int DvdID)
{
    DvdDBContext dvdDBContext = new DvdDBContext();
    Dvd dvd = dvdDBContext.Dvds.SingleOrDefault(Dvd => Dvd.DvdID == DvdID);
    if (dvd != null)
    {
        dvd.DvdID = DvdID;
        //dvdDbContext.Dvds.Attach(dvd);
        dvdDBContext.Dvds.Remove(dvd);
        dvdDBContext.SaveChanges();
    }
    else
    {
        throw new ApplicationException("Cannot find the Dvd");
    }
}