0

我有一个可以删除的 ListView,我还使用 SQLDatasource 作为 ListView 的 DataSource,我有这两个表:

News table that contains news_id, title, etc.. and 
Feedback table that contains feedback_id, comment, news_id(FK), etc...

我可以删除一条没有评论的记录,但是当我尝试删除有评论的新闻时出现此错误,评论来自表“反馈”,该表具有来自表“新闻”的外键“news_id” ',我知道要解决这个问题,我需要先从反馈表中删除记录。我怎样才能实现它?我正在考虑在 ListView 中使用 OnItemDeleting 事件并执行查询:

DELETE FROM Feedback WHERE news_id = @news_id

然后它可以继续执行 SQLDataSource 中的 DeleteCommand ,即:

DeleteCommand="DELETE FROM [News] WHERE [news_id] = @news_id"

但后来我得到了这个错误:

Must declare the scalar variable "@news_id".

这是我的删除参数:

<DeleteParameters>
<asp:Parameter Name="news_id" Type="Int32" />
</DeleteParameters>

如何从 DeleteParameter 中获取 news_id?任何答案表示赞赏,谢谢。

4

1 回答 1

0

我通过编辑表的外键关系,将INSERT and UPDATE Specification > Delete Rule 更改为Cascade from No Action解决了我的问题。不再需要 OnItemDeleting,我会将其发布为答案,因此如果有人也遇到此问题。

在此处输入图像描述

于 2013-09-27T12:43:31.627 回答