begin process at 2008 08 08 21:47:16
1 223 607 membres
365 nouveaux aujourd'hui
14 230 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Champs non duplicables [ Base de données / MySQL ] (olibara)

Champs non duplicables le 05/03/2008 18:00:21

olibara
Bonjour

Petite question concernant mise a jour DB et controle duplicates

Je presente a l'utilisateur un DGV peuplé avec le resultat d'un query, l'utilisateur peut ajouter des lignes
La cléf primaire est cachée et auto increment

Mais d'autres champs que l'utilisateur peut remplir ne veuvent pas etre dupliqués
Quelle serait la bonne maniere de faire

Actuellement je songe faire une boucle pour chaque ligne ajoutée et lancer des query dans la base pour chacun de ces champs : il y a -til une autre manière ?

Re : Champs non duplicables le 15/03/2008 11:36:56

ShareVB
salut,

le mieux serait de définir la colonne comme Unique à la fois dans la base et dans le dataset (normalement, si le champs est unique dans la base, alors il sera mappé dans le dataset)...

ShareVB

Re : Champs non duplicables le 15/03/2008 15:16:22

olibara
Merci

Je vais essayer mais j'ai déja constaté que le mapping n'etais pas infallible
Si tu a une primary key auto increment il faut truquer si tu cree un nouveau record
1- Tu cree un nouveau record
2- Tu accept changes
3- Tu delete le record que tu viens de creer : BOUM, je contourne en faisant un clear et refill du dataset juste apres ajout

Re : Champs non duplicables le 15/03/2008 20:36:22

ShareVB
salut,

euh, tu accept changes après un dataadapter.update ? parce que accept change tout court ca fait rien au niveau de la base...d'ailleurs le acceptchanges est fait par le dataadapter...

ShareVB

Re : Champs non duplicables le 15/03/2008 21:16:49

olibara
Salut

j'utilise acceptchanges non pas pour la database mais pour la datatable.
Je me souviens avoir eu une situation ou les records modifiés restaient flagués dans le dataset !
Ceci dit c'est peut etre une illusion ou le resultat d'une autre betise
Cela etant j'ai pris l'habitude de faire un acceptchange

.. c'est peut etre inutile ... ?


Re : Champs non duplicables le 15/03/2008 21:51:52

ShareVB
salut,

tu peux mettre à jour la clé primaire de ta datatable en faisant un INSERT suivi d'un SELECT dans le InsertCommand : http://www.akadia.com/services/dotnet_autoincrement.html

ShareVB

Re : Champs non duplicables le 15/03/2008 22:19:17

olibara
Ouch !!

Quel bingz a première vue
Finalement ma methode c'est pas si mal

1-Update
2-Clear Dataset
3-Fill dataset

      ch = dsContUpd.GetChanges(DataRowState.Added);
      if (ch != null)
      {
        try
        {
          int add = adaContUpd.Update(ch);
        }
        catch (MySqlException e)
        {
          MessageBox.Show(e.Message);
          return;
        }
        dsContUpd.Clear();
        adaContUpd.Fill(dsContUpd);
      }


Classé sous : utilisateur, champs, query, duplicables

Participer à cet échange

Pub



Appels d'offres

Snippets en rapport

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS