2013-09-27 2 views
0

J'ai un ListView qui permet à supprimer, j'utiliser également SQLDataSource comme DataSource de ListView, j'ai ces 2 tables:Comment obtenir la valeur DeleteParameter dans le code derrière?

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

je peux supprimer un dossier qui n'a pas de commentaires mais je reçois cette erreur lorsque J'essaie de supprimer un News qui a un commentaire, les commentaires proviennent de la table 'Feedback' qui a une clé étrangère 'news_id' de la table 'News', je sais que pour résoudre ce problème, je dois supprimer les enregistrements du Table de commentaires en premier. Comment puis-je y arriver? Je pense à l'aide de l'événement OnItemDeleting dans ListView et exécuter une requête:

DELETE FROM Feedback WHERE news_id = @news_id 

puis il peut procéder à l'exécution du DeleteCommand dans le SQLDataSource qui est:

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

mais je suis arrivé cette erreur :

Must declare the scalar variable "@news_id". 

ceci est mon SupprimeParamètre:

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

comment puis-je obtenir le news_id de DeleteParameter? toute réponse est appréciée, merci.

Répondre

0

Je résolu mon problème en éditant mes Relations clés étrangères de mes tables, changer la INSERT et UPDATE Spécification> Supprimer la règle à Cascade de Aucune action. Le OnItemDeleting n'est plus nécessaire, je l'afficherai comme réponse, donc si quelqu'un rencontre aussi ce problème.

enter image description here

Questions connexes