IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Format d'échange (XML, JSON...) Java Discussion :

comment enregistrer les modifs? [DOM]


Sujet :

Format d'échange (XML, JSON...) Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 84
    Points : 40
    Points
    40
    Par défaut comment enregistrer les modifs?
    me revoilà avec d'autres petits problèmes qui me bloquent. Déjà la lecture des jcombobox marchent, c'est nikel, pas de problème.

    Voilà mon problème : j'ai fait un bouton supprimer, pour qu'il supprime un noeud et ses noeuds enfants. Ca marche au niveau de la console d'Eclipse (si je clique deux fois sur le bouton, il ne compte plus d'éléments), mais quand je quitte, et que je relance, la suppression n'a pas eu lieu et je comprends pas pourquoi...

    Si quelqu'un a une idée....
    Si tu tapes ta tête contre une cruche et que ça sonne creux, ce n'est pas forcément la cruche qui est vide !!
    Mes topics sont tabous, vous en viendrez tous à bout.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 17
    Points : 19
    Points
    19
    Par défaut
    Peux tu préciser ton problème ? Qu'utilises tu ?

    Quand tu relances ton appli la suppresion ne fonctionne plus, mais ton DOM tu le cree a partir de quoi ? d'un fic xml, dynamiquement ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 17
    Points : 19
    Points
    19
    Par défaut
    Peux tu préciser ton problème ? Qu'utilises tu ?

    Quand tu relances ton appli la suppresion ne fonctionne plus, mais ton DOM tu le cree a partir de quoi ? d'un fic xml, dynamiquement ?

  4. #4
    Membre actif
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238
    Points : 265
    Points
    265
    Par défaut
    Si je me souviens bien quand tu lance ton appli tu parse un fichier XML...
    Donc pour que les modifs soit enregisté faut que tu modifie ton fichier XML sinon chaque fois que tu la relance, ca repart de zero.
    "Quand le sage montre la lune,
    L'idiot regarde le doigt."

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 84
    Points : 40
    Points
    40
    Par défaut
    alors dans mon appli, j'ai un jfilechooser pour le choix du fichier xml, par contre, les balises sont imposées :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <Theme nom="...">
      <SousTheme nom="...">
        <Objet nom="...">
          <Aspect nom="...">
            <PointIntervention nom="...">
              <Reference nom="...">
                <Commentaire>mon commentaire</Commentaire>
              <Reference>
            <PointIntervention>
          <Aspect>
        <Objet>
      <SousTheme>
    <Theme>

    Ensuite, j'utilise DOM. Je charge un fichier, je ne le crée pas, enfin pas encore.

    Mon problème est que j'ai créé un bouton suppression, et que, quand je clique sur suppression, après avoir choisi le niveau du noeud, ben il supprime (je l'ai vérifié avec la console eclipse), mais quand je quitte l'appli, ben c'est comme si j'avais pas supprimé...
    Si tu tapes ta tête contre une cruche et que ça sonne creux, ce n'est pas forcément la cruche qui est vide !!
    Mes topics sont tabous, vous en viendrez tous à bout.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 84
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par narfiggo
    Si je me souviens bien quand tu lance ton appli tu parse un fichier XML...
    Donc pour que les modifs soit enregisté faut que tu modifie ton fichier XML sinon chaque fois que tu la relance, ca repart de zero.
    Donc si j'ai bien compris, dès que l'utilisateur fait une seule modification, il doit sauvegarder? ..... ben c'est pas très pratique, mais bon, si j'ai pas le choix...
    Si tu tapes ta tête contre une cruche et que ça sonne creux, ce n'est pas forcément la cruche qui est vide !!
    Mes topics sont tabous, vous en viendrez tous à bout.

  7. #7
    Membre actif
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238
    Points : 265
    Points
    265
    Par défaut
    Non tu sauvegarde que lorsque tu quitte ton application, pas a chaque modif.
    Tu sauvegarde le fichier modifié soit dans un nouveau fichié soit en ecrasant le fichier d'origine. Ensuite lorsque tu reouvre l'appli, si un fichier de sauvegarde existe tu lis celui-la, du coup tu te retrouve avec une appli a jour (les modifications precedentes sont bien retrouvé). Et si ya pas de fichier de sauvegarde, tu ouvre avec le fichier d'origine.
    "Quand le sage montre la lune,
    L'idiot regarde le doigt."

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 84
    Points : 40
    Points
    40
    Par défaut
    Oui, c'est bien ça, c'est pas super pratique.... car si l'utilisateur veut faire 10 modifications (par exemple), ben ... il va pas avoir à ouvrir et fermer 10 fois l'appli, si?
    Si tu tapes ta tête contre une cruche et que ça sonne creux, ce n'est pas forcément la cruche qui est vide !!
    Mes topics sont tabous, vous en viendrez tous à bout.

  9. #9
    Membre actif
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238
    Points : 265
    Points
    265
    Par défaut
    Je sais pas trop ce que tu veux, ca a pas l'air tres clair.

    Le schema generale c'est :
    ouverture de l'appli (lecture fichier source ou fichier de suavegarde)
    modifications
    fermeture de l'appli (sauvegarde)

    C'est comme pour un editeur de texte, tu fais toutes les modifs que tu veux mais c'est seulement a la fin que tu sauve (ou qu'il y a suavegarde automatique quand tu quitte l'appli).
    Si tu veux modifier ton texte, tu fais pas 10 ouverture et fermeture de ton appli pour chacune des mots que tu rajoutes. Tu les rajoutes tous et tu sauve une seule fois
    "Quand le sage montre la lune,
    L'idiot regarde le doigt."

  10. #10
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 68
    Points : 72
    Points
    72

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 84
    Points : 40
    Points
    40
    Par défaut
    Oui, désolé, je sais que j'ai du mal à m'exprimer. Ce que je voulais dire, c'est que c'est pas pratique ce système de sauvegarder quand on ferme l'application, car il se peut que l'utilisateur fasse des modifications et qu'elles devront être prises en compte pour une autre modification.

    Ce que j'aurais voulu faire, mais tu me dis que c'est pas possible, c'était un bouton sauvegarder afin de prendre en compte les modifications, et que l'application soit directe mise à jour.

    Les modifications se font en fonction du radiobutton choisi (entre soustheme, objet, aspect,pointintervention,reference), puis du choix du combobox....... et pour que la modification soit sauvegarder, je sais pas comment faire....
    Si tu tapes ta tête contre une cruche et que ça sonne creux, ce n'est pas forcément la cruche qui est vide !!
    Mes topics sont tabous, vous en viendrez tous à bout.

  12. #12
    Membre actif
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238
    Points : 265
    Points
    265
    Par défaut
    Citation Envoyé par noobiewan kenobi
    Ce que j'aurais voulu faire, mais tu me dis que c'est pas possible, c'était un bouton sauvegarder afin de prendre en compte les modifications, et que l'application soit directe mise à jour.
    Rien n'est impossible Faut voir ce que tu veux exactement.

    En quoi consiste ta modification.
    C'est juste visuel (faire apparaitre certaine fonctionnalité...).
    C'est reconstruire un fichier XML en fonction de choix utilisateur.

    En fait faudrai nous dire exactement
    Ta base de depart (un fichier XML par exemple)
    Qu'est-ce que tu veux mettre a jour.
    Qu'est-ce que tu veux sauvegarder.
    "Quand le sage montre la lune,
    L'idiot regarde le doigt."

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 84
    Points : 40
    Points
    40
    Par défaut
    Alors prenons les questions dans l'ordre :

    - ma modification doit être vu dans l'application, dans la console eclipse c'est juste pour voir si ça marche.
    - je veux mettre à jour un fichier xml (en ajoutant, supprimant ou modifiant des attributs des noeuds)

    Ensuite ma base de fichier xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <Theme nom="..."> 
      <SousTheme nom="..."> 
        <Objet nom="..."> 
          <Aspect nom="..."> 
            <PointIntervention nom="..."> 
              <Reference debutValidite="..." source="..." article="..." alinea="..."> 
                <Commentaire>mon commentaire</Commentaire> 
              </Reference> 
            </PointIntervention> 
          </Aspect> 
        </Objet> 
      </SousTheme> 
    </Theme>
    Je travaille sur les attributs ( pas sur les balises en elles-mêmes).
    Pour l'utilisateur, je travaille avec des jcombobox, et je fais mes modifications en fonction du choix de la balise (si c'est sous theme, alors on modifiera, supprimera ou ajoutera un attribut de la balise sous theme) et de l'attribut de la balise (pour pouvoir le modifier).

    Et je voudrais pouvoir sauvegarder des ajouts d'attributs, de suppression d'attributs, et de modifications...


    J'espère avoir été plus clair. En tout cas, merci encore de m'aider
    Si tu tapes ta tête contre une cruche et que ça sonne creux, ce n'est pas forcément la cruche qui est vide !!
    Mes topics sont tabous, vous en viendrez tous à bout.

  14. #14
    Membre actif
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238
    Points : 265
    Points
    265
    Par défaut
    Tu leves la main quand tu es perdu

    Donc premier lancement de ton appli :
    Tu parse ton fichier XML, tu construit tes listes ou tes map pour avoir en memoire les attributs liés à chaque noeud.
    Tu affiche ton appli.

    Deuxieme etape : l'utilisateur fait joujou avec ton appli.
    Il modifie la valeur des attributs qu'il voit a l'ecran... Donc toi en memoire tu change cette valeur dans les listes ou ils etaient sauvegardé.
    Il supprime des attributs : tu les supprime de tes listes.
    Il ajoute des attributs : tu les ajoutes dans tes listes.

    Troisieme etape : la sauvegarde des modifications.
    Soit la sauvegarde se fait automatiquement a la fermeture de l'appli, soit par un bouton sauvegarder, mais la n'est pas le probleme.
    Donc ton but est de reconstruire ton fichier XML avec les nouvelles valeurs que tu as dans tes listes. Tu enregistres donc tout ca dans un fichier XML (nouveau ou en ecrasant le premier) ou dans un autre format autre que XML...

    Quatrieme et derniere etape : une nouvelle ouverture de ton appli.
    En fonction de ton choix de sauvegarde.
    Si tu as ecrasé l'ancien fichier XML par celui que tu crée avec les nouvelles valeurs t'a rien de plus a faire.
    Si tu as enregistré les modifications dans un autre fichier, faut que tu es une fonction de chargement avec choix du fichier XML a charger par l'utilisateur.

    C'est un peu plus clair maintenant ou c'est pire qu'avant :
    "Quand le sage montre la lune,
    L'idiot regarde le doigt."

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 84
    Points : 40
    Points
    40
    Par défaut
    non c'est super clair . En fait, je commençais à avoir une solution, c'est à dire que ça marche nikel pour les sous themes. Alors je me suis dit que ça va être pareil pour les autres, mais pour l'instant ça coinces.

    Sinon ton explication est super claire, pas de problème pour la comprendre.

    En même temps que je bloque sur un problème, je cherche, et avec le lien que tileffeleauzed m'a donné, ça m'a bien aidé, mais c'est bizarre quand même là...
    enfin je vais continuer à chercher, j'ai du faire une erreur de frappe.

    en tout cas, merci beaucoup pour tes explications, grand Maître
    Si tu tapes ta tête contre une cruche et que ça sonne creux, ce n'est pas forcément la cruche qui est vide !!
    Mes topics sont tabous, vous en viendrez tous à bout.

  16. #16
    Membre actif
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238
    Points : 265
    Points
    265
    Par défaut
    Citation Envoyé par noobiewan kenobi
    en tout cas, merci beaucoup pour tes explications, grand Maître
    Arrete je risque de passer du coté obscur de la force si tu continue
    Je sens en toi un grand potentiel, mais te concentrer tu dois, et à tes fins tu arriveras
    "Quand le sage montre la lune,
    L'idiot regarde le doigt."

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 84
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par narfiggo
    Arrete je risque de passer du coté obscur de la force si tu continue
    Je sens en toi un grand potentiel, mais te concentrer tu dois, et à tes fins tu arriveras
    oui maître, mais j'ai une autre question, maître :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    		DOMSource domSource = new DOMSource(doc.getDocumentElement());
    		StreamResult fluxDestination = new StreamResult(my_jfilechooser);
    		TransformerFactory fabrique = TransformerFactory.newInstance();
    		Transformer transformationIdentité = null;
    		try 
    		{
    			transformationIdentité = fabrique.newTransformer();
    			transformationIdentité.setOutputProperty(OutputKeys.INDENT, "yes");
    			transformationIdentité.setOutputProperty(OutputKeys.ENCODING, "ISO-8859-1");			
    		}
    		catch (TransformerConfigurationException e1) 
    		{
    			e1.printStackTrace();
    		}
    		try 
    		{
    			transformationIdentité.transform(domSource, fluxDestination);
    		}
    		catch (TransformerException e2) 
    		{		
    			e2.printStackTrace();
    		}

    quand je me sers de ce code, je ne pourrais écrire que les modifications à partir de l'élément racine, non? car avec ce code, seules les modifications qui touchent les sous themes sous enregistrées, je pense que ça vient de là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    doc.getDocumentElement()
    Si tu tapes ta tête contre une cruche et que ça sonne creux, ce n'est pas forcément la cruche qui est vide !!
    Mes topics sont tabous, vous en viendrez tous à bout.

  18. #18
    Membre actif
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238
    Points : 265
    Points
    265
    Par défaut
    Ca reconstruit un document XML en partant effectivement de la racine du document doc.getDocumentElement().
    Si tes modifications tu les as bien faite sur ton document, quelque soit le tag que tu es modifié (sous themes ou autre) ca doit marcher.

    Tout depend de ce que tu modifie quand l'utilisateur fait une modif. Faut bien que ce soit le document doc sur lequel tu fasse les modifs et pas ailleurs pour que lors de la reconstructions de ton fichier XML ca apparaisse.
    "Quand le sage montre la lune,
    L'idiot regarde le doigt."

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 84
    Points : 40
    Points
    40
    Par défaut
    ben ça marche pas, je vais peut etre trouver une solution, mais pour l'instant, je vois pas. Alors, je vais te montrer 2 codes : celui du bouton sauver :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    	if(Source == bsave)
    	{
    	  saver = new JFileChooser();
    	  saver.setCurrentDirectory(fileSave) ;
    	  int returnVal = saver.showSaveDialog(fenetre.this);
    	  if (returnVal == JFileChooser.APPROVE_OPTION) 
    	  {        	
    		  //Le fichier fileSave devient le fichier sélectionner
    	  	fileSave = saver.getSelectedFile();
    		Object dom = null;
     
    		DOMSource domSource = new DOMSource(test);
    		StreamResult fluxDestination = new StreamResult(fileSave);
    		TransformerFactory fabrique = TransformerFactory.newInstance();
    		Transformer transformationIdentité = null;
    		try 
    		{
    			transformationIdentité = fabrique.newTransformer();
    			transformationIdentité.setOutputProperty(OutputKeys.INDENT, "yes");
    			transformationIdentité.setOutputProperty(OutputKeys.ENCODING, "ISO-8859-1");			
    		}
    		catch (TransformerConfigurationException e1) 
    		{
    			e1.printStackTrace();
    		}
    		try 
    		{
    			transformationIdentité.transform(domSource, fluxDestination);
    		}
    		catch (TransformerException e2) 
    		{		
    			e2.printStackTrace();
    		}
     
    	  }
     
     
    	}
    et voilà celui du bouton supprimer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    	if(Source == bsuppr)
    	{
    		if(radiosoustheme.isSelected())
    		{
    			for(int i=0;i<nodeNiveau2.getLength();i++)
    			{                
    				Node node = nodeNiveau2.item(i); 
    				NamedNodeMap nodeAttribut = node.getAttributes(); 
    				for(int j=0;j<nodeAttribut.getLength();j++)
    				{             
    					Node attribut = nodeAttribut.item(j); 
    					if(attribut.getNodeName().equals("nom"))
    					{ 
    						String clef = attribut.getNodeValue();
    						if(itemSelectionne == attribut.getNodeValue())
    						{
    							node.getParentNode().removeChild(node);
    						}
    					}
    				}
    			}
    		}
    		if(radioobjet.isSelected())
    		{
    			System.out.println("0");
    			for(int i=0;i<nodeNiveau3.getLength();i++)
    			{                
    				Node node = nodeNiveau3.item(i); 
    				NamedNodeMap nodeAttribut = node.getAttributes(); 
    				for(int k=0;k<nodeAttribut.getLength();k++)
    				{             
    					Node attribut = nodeAttribut.item(k); 
    					if(attribut.getNodeName().equals("nom"))
    					{ 
    							String clef = attribut.getNodeValue();
    						if(itemSelectionne == attribut.getNodeValue())
    						{
    							node.getParentNode().removeChild(node);
    						}
    					}
    				}
    			}
    		}
    		if(radioaspect.isSelected())
    		{
    			for(int i=0;i<nodeNiveau4.getLength();i++)
    			{                
    				Node node = nodeNiveau4.item(i); 
    				NamedNodeMap nodeAttribut = node.getAttributes(); 
    				for(int k=0;k<nodeAttribut.getLength();k++)
    				{             
    					Node attribut = nodeAttribut.item(k); 
    					if(attribut.getNodeName().equals("nom"))
    					{ 
    							String clef = attribut.getNodeValue();
    						if(itemSelectionne == attribut.getNodeValue())
    						{
    							node.getParentNode().removeChild(node);
    						}
    					}
    				}
    			}
    		}
    	}

    Je t'explique ce qui se passe : alors je choisis avec un bouton radio entre theme-soustheme-objet-aspect-pointintervention-reference pour savoir où la suppression va avoir lieu. Ensuite, avec le combobox, je choisis dans l'arborescence, le noeud et ses noeuds fils à supprimer. Puis je clique sur supprimer, puis sur enregistrer (où je peux choisir dans quel fichier je veux enregistrer).
    Pour les sousthemes, tout va bien, la suppression marche. Par contre, je vois pas ce que va pas pour le reste, alors que c'est presque le même code.. si tu pouvais m'aider...

    Je pense que ça vient du itemSelectionne, mais bon, je préfère avoir l'avis d'expert...

    Maître...
    Si tu tapes ta tête contre une cruche et que ça sonne creux, ce n'est pas forcément la cruche qui est vide !!
    Mes topics sont tabous, vous en viendrez tous à bout.

  20. #20
    Membre actif
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238
    Points : 265
    Points
    265
    Par défaut
    T'as mis des System.out.print() pour etre sur que ca rentre bien dans le code pour les trucs differents de sous-themes.
    Apparement ta ca comme trace : System.out.println("0"); met essaye dans mettre jusque dans tes boucles et if pour voir si ca va bien au bout.

    Ca vient peut etre de la :
    "Quand le sage montre la lune,
    L'idiot regarde le doigt."

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 11
    Dernier message: 24/08/2006, 11h22
  2. Réponses: 3
    Dernier message: 17/12/2005, 11h47
  3. Réponses: 1
    Dernier message: 27/10/2005, 09h22
  4. [C#] Comment empecher les modification dans un DataGrid ?
    Par layate dans le forum Windows Forms
    Réponses: 5
    Dernier message: 06/06/2005, 17h11
  5. [firebird] comment valider les modifications ?
    Par kase74 dans le forum Bases de données
    Réponses: 2
    Dernier message: 24/08/2004, 01h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo