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