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

C#

 > 

Base de données

 > 

SQL Server

 > 

Dataset et dataAdaptater, mauvaise mise à jour...


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

Dataset et dataAdaptater, mauvaise mise à jour...

lundi 29 mai 2006 à 17:41:21 | Dataset et dataAdaptater, mauvaise mise à jour...

gusrom86

Bonjour tout le monde,
J'ai un gros probleme avec ma PTI (bts ig2) de C# de gestion de base de donnée...
Alors voila j'ai 2 tables :
ETUDIANTS :                   CLASSE:
indice                                  code
nom                                    description   
prénom
classe(clé étrangère de classe.code)


J'ai mis la table CLASSE dans le dataset, seulement celle-ci et pas celle d'ETUDIANT pour montrer les possibilités avec et sans dataset, et finalement faire un mix des 2.
Je veux supprimer une classe, alors je vire d'abord tous les étudiants de la classe choisi en direct (par requete direct), et ensuite je veux mettre à jour le dataset pour lui montrer qu'il n'y a plus lieu de se préoccuper des liens avec ETUDIANTS.
Ensuite je tente de supprimer la ligne où contient la classe (ex : IG2, info gestion 2e annee), puis je fais une mise à jour de la base de donnée avec le dataAdaptater...
[code]if(supprElCl(repClasse))
                {
                    ds.Clear;
                    da.Fill(ds, "Classes");
                    ds.Tables["Classes"].Rows.RemoveAt(chiffre);   
                    da.Update();
                }[/code]

Le probème cest que la dataset vire bien la ligne de classe, mais la ligne n'est pas viré sur la BDD...
J'ai essayé plusieurs variantes, j'ai bien ajouté le "da.MissingSchemaAction = MissingSchemaAction.AddWithKey;" mais rien à faire...
Pour l'ajout de classes, il n'y a aucun probleme, et le dataset ainsi que la base de donnée se mettent correctement à jour.
Ma prof galère comme moi, alors s'il vous plait, abrégez notre mal de crâne et aidez nous.
Je vous remercie énormément.






lundi 29 mai 2006 à 18:26:12 | Re : Dataset et dataAdaptater, mauvaise mise à jour...

Arthenius

Membre Club

le fait de supprimer ta classe dans le dataset signifie a ton dataadapter de le supprimer dans la base

MAIS  si tu n'a pas supprimer tes etudiants lie a ta classe la suppression ne peut ce faire

try
{
ds.Clear;
                    da.Fill(ds, "Classes");
                    ds.Tables["Classes"].Rows.RemoveAt(chiffre);   
                    da.Update();
}
catch(Exception xcp)
{
    MessageBox.Show(xcp.Message);
}

Essaie deja de catcher l'erreur tu devrais avoir un message de ta bdd qui te dis qu'une contrainte n'a pas ete respecter

les solutions :
- faire une boucle avant ton da.Update qui va supprimer tout les etudiants appartenant a ta classe
- dans ta base de données modifies la contrainte d'intégrité entre ta table CLASSE et ETUDIANT en mettant un delete cascade...



Arthenius
http://blogs.developpeur.org/Arthenius/

"Ce qui ne me tue pas, me rend plus fort..."

lundi 29 mai 2006 à 18:39:03 | Re : Dataset et dataAdaptater, mauvaise mise à jour...

gusrom86

Je te remercie de t'interesser à mon cas...
J'ai deja catcher les erreurs, aucuns problèmes apparents...

Dans mon dataset je n'ai mis que les classes, pas les étudiants, les étudiants je les supprime autrement :
strSql = "DELETE FROM Etudiants WHERE Etudiants.classe = '" + classe + "'";
SqlCommand cmdSuppr = new SqlCommand(strSql, cn);
cmdSuppr.ExecuteNonQuery();

C'est pour cela que je fais un fill sur mon da...
J'ai entendu parler de la contrainte d'intégrité, mais je n'arrive pas a créer la requête :/.
Pourrais-tu m'éclaircir sur ce point? Ce serais royale si tu me l'a donnais (ici aussi ma prof n'a pas su ^^ )
mardi 30 mai 2006 à 00:49:34 | Re : Dataset et dataAdaptater, mauvaise mise à jour...

georgeduke

Pour les contraintes d'intégrité :

Lors de la requete SQL de construction de tes tables, il suffit de mettre ça juste apres la reference à la clef étrangère 'FK_Classe':
ON DELETE RESTRICT

mardi 30 mai 2006 à 06:44:30 | Re : Dataset et dataAdaptater, mauvaise mise à jour...

gusrom86

Il n'y a pas un moyen de la faire avec un ALTER TABLE ?
Je sais je suis chiant :p...
Merci en tout cas
mardi 30 mai 2006 à 08:44:38 | Re : Dataset et dataAdaptater, mauvaise mise à jour...

Arthenius

Membre Club


alter table ETUDIANT
   drop constraint FK_ETUDIANT_REFERENCE_CLASSE
go


alter table ETUDIANT
   add constraint FK_ETUDIANT_REFERENCE_CLASSE foreign key (code)
      references CLASSE (code)
      on delete cascade
go



Ou FK_ETUDIANT_REFERENCE_CLASSE est le nom de ta reference valable sous sql..

c une prof de quoi oO



Arthenius
http://blogs.developpeur.org/Arthenius/

"Ce qui ne me tue pas, me rend plus fort..."

mardi 30 mai 2006 à 09:11:28 | Re : Dataset et dataAdaptater, mauvaise mise à jour...

Arthenius

Membre Club
on delete cascade : supprime automatiquement les etudiant qd tu supprime une classe
on delete restrict : empeche la suppression d'une classe si des etudiants y sont rataché



Arthenius
http://blogs.developpeur.org/Arthenius/

"Ce qui ne me tue pas, me rend plus fort..."

mardi 30 mai 2006 à 16:57:02 | Re : Dataset et dataAdaptater, mauvaise mise à jour...

gusrom86

Ouf merci beaucoup, je pourrais tester ca que jeudi (parce que j'ai pas accès a la BDD).
Je pense que ca va pas mal m'aider...
Euh...c'est une prof d'algo, de prog et de merise (pas SQL, seulement MCD, MCT etc...).

Merci en tout cas (encore).

P.S: je viens d'apprendre que je suis accepté en apprentissage en MIAGE a creteil (paris XII), YOUPI!!!! :p
mardi 30 mai 2006 à 17:02:41 | Re : Dataset et dataAdaptater, mauvaise mise à jour...

Arthenius

Membre Club
felicitation :)

et good luck avec tes profs ^^



Arthenius
http://blogs.developpeur.org/Arthenius/

"Ce qui ne me tue pas, me rend plus fort..."



Cette discussion est classée dans : base, dataset, jour, classe, dataadaptater


Répondre à ce message

Sujets en rapport avec ce message

Mise à jour des données du dataset vers la base de données [ par chafaqis ] salut tt le mondeJ'ai crée une application Win form en C# mon problème est le suivant:j'ai affichée le résultat d'un dataset dans un datagrid puis j'a mise a jour base de donnees c# [ par Moucave ] Bonjour tout le monde,   Je suis en train de developper une application en c# gerant les bases de donnees. J'affiche les champ a l'aide d'une dataGrid 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 classe de gestion d'une base de données mysql [ par isselmoumg ] salut à tousje suis en train de realiser une classe C# pour gerer une base de données mysqlmais je m'ai trouvé bloqué.je compte sur vous pour m'aider. 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 Actualisation d'un DataSet [ par vmontagnon ] Salut,J'ai une IHM en C# avec connexion sur base MySQL. Je souhaite provoquer l'actualisation des données affichées le plus simplement possible.J'util creation d'un ActiveX [ par leromantique6 ] Bonjour,Voila j'aimerai creer un activeX à partir de mon code c#.Alors pour faire ca, j'ai fait l'exemple qui se trouve à l'adresse suivante :http://w Comment utiliser une base Access? [ par Tuizi ] Bonjour,Voila, j'ai une base de donnée Access avec laquelle je veux travailler, donc INSERT,DELETE, etc....J'ai donc établit une connexion à cette bas Comment faire simple? [ par TomLeBatisseur ] Bonjour à tous!Me voilà à la recherche de la meilleur facon de faire pour mon projet.Voilà: Je dispose d'une base de données qui se met à jour réguliè Probleme sauvegarde sur BDD. [ par Kleidp ] Bonjour,Cela fait plusieurs heures que je bloque sur l'impossibilité d'appliquer mes changements sur ma base Access.Voici comment je procède:    Je cr


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,390 sec (3)

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