Empecher un INSERT si le contenu du champ existe déja dans la table [Résolu]

Signaler
Messages postés
9
Date d'inscription
jeudi 27 juillet 2006
Statut
Membre
Dernière intervention
27 juillet 2006
-
Messages postés
427
Date d'inscription
mercredi 1 octobre 2003
Statut
Membre
Dernière intervention
29 janvier 2008
-
bonjour

voila j'expose mon prob, je debute en asp.net

j'ai une table SQL "activité" qui contient les champs "id_activité" -> clé primaire et "act_libelle"
je veux que si j'insert une nouvelle valeur dans mon champ "act_libelle" et que cette valeur est déja dans la table,  elle soit refuser

16 réponses

Messages postés
427
Date d'inscription
mercredi 1 octobre 2003
Statut
Membre
Dernière intervention
29 janvier 2008
1
    Non pas du tout tu n'abuses pas de ma patience ... mais c'est juste pour que tu évites a l'avenir ce genre de demande de code prémaché alors qu'un minimum de recherche est quand meme assez simple. (je parle surtout pour le post "

en code ca donne quoi ?")

Tu comprendras certainement mieux ce que tu fais si tu as au préalable fait tes propres recherches que si on te donnes tout ;)

Enfin voila ...

Bonne continuation

++
Messages postés
427
Date d'inscription
mercredi 1 octobre 2003
Statut
Membre
Dernière intervention
29 janvier 2008
1
    Little exemple ...

   sqlCommande = new ("Select count(*) from taTable where act_libelle='celui que tu veux verifier'",sqlConnexion);
   res = sqlCommande.ExcecuteScalar();
  
//tu test ton res si il est positif tu n'insere pas de nouvelles valeurs sinon ben tu inserts

//Ohter solution tu peux définir le champs act_libellé dans mySql avec une valeur unique

++
Messages postés
9
Date d'inscription
jeudi 27 juillet 2006
Statut
Membre
Dernière intervention
27 juillet 2006

je travail en asp.net et sql server pas php/mysql
Messages postés
427
Date d'inscription
mercredi 1 octobre 2003
Statut
Membre
Dernière intervention
29 janvier 2008
1
      Alors 1erement POST DANS LA BONNE SECTION
Sujet : empecher un INSERT si le contenu du champ existe déja dans la table [ Base de données / MySQL ]

et 2emement sa ne changes absolument RIEN au code ... j't'ai donnée du code .net et que ce soit pour SqlServer ou MySql ca ne change rien ...
Messages postés
9
Date d'inscription
jeudi 27 juillet 2006
Statut
Membre
Dernière intervention
27 juillet 2006

ok merci bernie666
Messages postés
427
Date d'inscription
mercredi 1 octobre 2003
Statut
Membre
Dernière intervention
29 janvier 2008
1
    De rien ;)

++
Messages postés
9
Date d'inscription
jeudi 27 juillet 2006
Statut
Membre
Dernière intervention
27 juillet 2006

comment je fait pour définir mon champ dans sql en valeur unique (dsl je suis nul lol) ?
Messages postés
427
Date d'inscription
mercredi 1 octobre 2003
Statut
Membre
Dernière intervention
29 janvier 2008
1
    Ben si tu la passe en primary Key par exemple ... étant donnée que tu ne veux pas de doublons sur cette valeure ca peut faire l'affaire ...
Messages postés
9
Date d'inscription
jeudi 27 juillet 2006
Statut
Membre
Dernière intervention
27 juillet 2006

ok j'essaye
Messages postés
9
Date d'inscription
jeudi 27 juillet 2006
Statut
Membre
Dernière intervention
27 juillet 2006

ca marche mais si je rentre une valeur déja existante, ça plante


le message :



Violation de la contrainte PRIMARY KEY 'PK__activite__7C8480AE'. Impossible d'insérer une clé en double dans l'objet 'dbo.activite'.
L'instruction a été arrêtée.




Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

Détails de l'exception: System.Data.SqlClient.SqlException: Violation de la contrainte PRIMARY KEY 'PK__activite__7C8480AE'. Impossible d'insérer une clé en double dans l'objet 'dbo.activite'.
L'instruction a été arrêtée.

Erreur source:

Une exception non gérée s'est produite lors de l'exécution de la demande Web actuelle. Les informations relatives à l'origine et l'emplacement de l'exception peuvent être identifiées en utilisant la trace de la pile d'exception ci-dessous.
Messages postés
427
Date d'inscription
mercredi 1 octobre 2003
Statut
Membre
Dernière intervention
29 janvier 2008
1
    Jusque l'a rien d'anormale ...

Vive le try / catch

tu catch la sqlException et au moins t sur que ca va pas inserer ...

Pas du code propre mais ca a le mérite de marché ...
Messages postés
9
Date d'inscription
jeudi 27 juillet 2006
Statut
Membre
Dernière intervention
27 juillet 2006

en code ca donne quoi ?
Messages postés
427
Date d'inscription
mercredi 1 octobre 2003
Statut
Membre
Dernière intervention
29 janvier 2008
1
    Bon la faut arreter un peu ... use un peu google + msdn PLZ !
C'est pas un forum pour récuperer du code prémaché. Je suis sur que tu n'as meme pas pris la peine de rechercher dans les sources proposées sur le site ...
Messages postés
9
Date d'inscription
jeudi 27 juillet 2006
Statut
Membre
Dernière intervention
27 juillet 2006

si mais la je bloquais tant pis merci quand même (g été voir les sources)


bye
Messages postés
427
Date d'inscription
mercredi 1 octobre 2003
Statut
Membre
Dernière intervention
29 janvier 2008
1
    Google.fr msdn.com => tu tappes Try Catch et tu auras tout ce qu'il faut ...
Messages postés
9
Date d'inscription
jeudi 27 juillet 2006
Statut
Membre
Dernière intervention
27 juillet 2006

ok j'essaye merci encore, désolé d'abuser de votre patience