begin process at 2010 02 10 05:49:24
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Base de données

 > 

ADO.NET

 > 

conseils et aide pour une suppression en cascade dans une base de donnée


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

conseils et aide pour une suppression en cascade dans une base de donnée

samedi 27 décembre 2008 à 16:43:06 | conseils et aide pour une suppression en cascade dans une base de donnée

ethan94

Bonjour :)

Je vais travailler sur un petit programme de gestion d'utilisateurs et de dossiers de travail, sous Visual Studio 2005, avec une base de donnée sous SQL Server. Je vais avoir une table "utilisateur", une table "dossier" et une table "travailler" dont la clé primaire sera composée du code utilisateur et du numéro de dossier.

Dans mon programme, je souhaiterai pouvoir faire des suppressions en cascade. Exemple: je supprime un utilisateur, ce qui aurait pour effet de supprimer toutes les lignes de la table "Travailler" qui comportent le code de cet utilisateur.

Comme je n'ai jamais fait de suppression en cascade, je ne sais pas comment celà fonctionne. J'aimerais donc savoir s'il faut créer la base de donnée d'une manière spécifique et si la suppression en cascade se gère sous SQL Server (avec un trigger par exemple ou une procédure stockée) ou bien si cela doit être fait dans les dataset/data adapter du programme sous visual studio.

Merci par avance pour votre aide :)
samedi 27 décembre 2008 à 18:41:59 | Re : conseils et aide pour une suppression en cascade dans une base de donnée

coq

Administrateur CodeS-SourceS
Réponse acceptée !
Salut,

Le moteur en lui même peut gérer ce genre de choses : Contraintes d'intégrité référentielle en cascade
Je ne l'ai jamais utilisé par contre.


/*
coq
MVP Visual C#
CoqBlog
*/
samedi 27 décembre 2008 à 19:28:24 | Re : conseils et aide pour une suppression en cascade dans une base de donnée

Robert33

Membre Club
Bonsoir

en effet, Sql server gère ça très bien sans avoir a créer un trigger
Dans entreprise manager, dans la base crée un diagram avec tes tables,
Ajoute les relations si ce n'est dèjà fait (clicke sur la colonne clef primaire de la table fille et glisse là sur la colonne clef secondaire de la table mére) dans les propriétés de la relation il y a un "check box" "Cascade delete related records" (désolé je l'ai en anglais).

C# is amazing, enjoy it!
dimanche 28 décembre 2008 à 11:37:18 | Re : conseils et aide pour une suppression en cascade dans une base de donnée

ethan94

Bonjour et merci pour vos réponses :)

J'ai installé entreprise manager. J'ai crée mes tables. Mais je ne trouve pas comment créer le diagramme de ma base de donnée. J'ai bien une ligne "schéma de base de donnée" lorsque je développe la base de donnée dans l'explorateur d'objets à gauche, mais lorsque je clique dessus, j'ai un message d'erreur.

----------------------------
Les objets de prise en charge du schéma de base de données ne peuvent pas être installés car la base de données n'a pas de propriétaire valide. Pour continuer, définissez le propriétaire de la base de données à un nom de connexion valide dans la page Fichiers de la boîte de dialogue Propriétés de la base de données ou à l'aide de l'instruction ALTER AUTHORIZATION, puis ajoutez les objets de prise en charge du schéma de base de données.
----------------------------

Pourtant je suis administrateur de mon système et bien propriétaire de la base de donnée : /


dimanche 28 décembre 2008 à 15:35:39 | Re : conseils et aide pour une suppression en cascade dans une base de donnée

Robert33

Membre Club
Désolé, je ne vois pas.
ça meriterait une question sur le forum SQL.

C# is amazing, enjoy it!
dimanche 28 décembre 2008 à 16:04:07 | Re : conseils et aide pour une suppression en cascade dans une base de donnée

Robert33

Membre Club
Réponse acceptée !
Re,

En fait tu dois quand même pouvoir poser cette relation par un script.

ALTER TABLE [dbo].[LaTableFille]
ADD CONSTRAINT [LeNomDeLaRelation]
  FOREIGN KEY ( [LeNomDeLaColonneDeLaTableFille])
  REFERENCES [dbo].[LaTableMere] ([LeNomDeLaColonneDeLaTableMére])
ON UPDATE CASCADE

Avant de lancer ce script il faut détruire la relation existante.

C# is amazing, enjoy it!
dimanche 28 décembre 2008 à 16:06:34 | Re : conseils et aide pour une suppression en cascade dans une base de donnée

Robert33

Membre Club
oops,

ON DELETE CASCADE  bien entendu, (pour le delete)

C# is amazing, enjoy it!
dimanche 28 décembre 2008 à 16:10:34 | Re : conseils et aide pour une suppression en cascade dans une base de donnée

ethan94

Merci pour l'explication :)

J'ai trouvé une autre méthode pour créer ces contraintes. En cliquant droit sur les tables, on peut lancer un semi-assitant pour créer des contraintes :) J'ai testé et ça à l'air de fonctionner. Si jamais ça ne fonctionne pas pour tous, j'essaierai ton modèle.

Encore merci :)




Cette discussion est classée dans : base, donnée, table, suppression, cascade


Répondre à ce message

Sujets en rapport avec ce message

Listview et base de donnée [ par fredza ] Salut,En C# est-il possible de remplir une listview (en mode détail avec le contenu d'une base de donnée) si oui comment ?Ma base est constituée de pl detction des table d'une base de donnée [ par youess81 ] salut je veux extraire le table d'une base de donnée access je m explique :apartir du nom e la base de donnée je veux extraire le nom de toute les tab Dataset, image et base de donnée [ par Golbatt ] Bonjour, alors voilà j'ai renplis un dataset à l'aide d'une requete sur une table d'une base de données accès (locale). Une des colonnes de la table c connection a une base [ par grogui95 ] bonjourje suis nouveau et j'apprend petit a petit le C# alors je vous le dit tout de suite je ne suis pas un pro^^alors concernant ma question en fait realiser une seule ouverture de la base de donnée [ par beny100 ] bonsoir,je realiser des traitements de ficheir et j'ouvre pour cela plus de3 connexions a ma base de donnée je voudrais maintenant realiser qu'une seu debutant+dataset [ par benjeddi ] salut j'ai cré un datsetavec le designer puis j'ai inseré dans le tableadapter mes données jusqu'a ici tous va bien mais le probleme quand j'ai essaye Récupérer un tableau de byte sur une base de donnée SQLserver 2000 [ par Sun-Burst ] Bonjour,J'enregistre des photos dans une base de donnée SQL server 2000 dans un champ photo. Pas de problème lors de l'enregistrement.Cependant, lorsq charger de l'xml dans une base de donnée ? [ par 6miK ] bonjour,j'arrive a enrregistrer ma base de donnée dans un fichier xml et j'arrive aussi a charger mon xml dans un datagrid.Mais, je n'arrive pas à met listbox ou listview lié à une base de donnée [ par wally88 ] Bonjour,Alors pour le moment j'ai une listbox qui se rempli avec un champs de ma base de donnée.DataSet dsArticle = charger.ChargerArticle();li quels outils pour le mapping O/R ? [ par mathmax ] Bonjour, Je suis actuellement à la recherche d'un outils permettant de persister mes objets en base de données. J'ai vu que <span style="b


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,343 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales