【发布时间】:2014-12-09 12:37:46
【问题描述】:
我的方法不断抛出异常,我一辈子都看不到发生了什么。任何帮助将不胜感激。
具有数据源和网格视图的 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>
来自 DvdRepository 的代码(删除方法)
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");
}
}
【问题讨论】:
-
数据源连接到我所有的方法,我确定我在以前的网站中使用过这个删除方法,但每次都会抛出异常。对 asp.net 相当陌生,谢谢。