Empecher un INSERT si le contenu du champ existe déja dans la table

Résolu
ptitof71 Messages postés 9 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 27 juillet 2006 - 27 juil. 2006 à 12:10
bernie666 Messages postés 427 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 29 janvier 2008 - 27 juil. 2006 à 16:19
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
A voir également:

16 réponses

bernie666 Messages postés 427 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 29 janvier 2008 1
27 juil. 2006 à 16:19
    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

++
3
bernie666 Messages postés 427 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 29 janvier 2008 1
27 juil. 2006 à 14:28
    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

++
0
ptitof71 Messages postés 9 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 27 juillet 2006
27 juil. 2006 à 14:36
je travail en asp.net et sql server pas php/mysql
0
bernie666 Messages postés 427 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 29 janvier 2008 1
27 juil. 2006 à 14:39
      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 ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ptitof71 Messages postés 9 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 27 juillet 2006
27 juil. 2006 à 14:41
ok merci bernie666
0
bernie666 Messages postés 427 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 29 janvier 2008 1
27 juil. 2006 à 14:42
    De rien ;)

++
0
ptitof71 Messages postés 9 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 27 juillet 2006
27 juil. 2006 à 14:44
comment je fait pour définir mon champ dans sql en valeur unique (dsl je suis nul lol) ?
0
bernie666 Messages postés 427 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 29 janvier 2008 1
27 juil. 2006 à 14:47
    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 ...
0
ptitof71 Messages postés 9 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 27 juillet 2006
27 juil. 2006 à 14:48
ok j'essaye
0
ptitof71 Messages postés 9 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 27 juillet 2006
27 juil. 2006 à 15:13
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.
0
bernie666 Messages postés 427 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 29 janvier 2008 1
27 juil. 2006 à 15:40
    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é ...
0
ptitof71 Messages postés 9 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 27 juillet 2006
27 juil. 2006 à 15:44
en code ca donne quoi ?
0
bernie666 Messages postés 427 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 29 janvier 2008 1
27 juil. 2006 à 16:02
    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 ...
0
ptitof71 Messages postés 9 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 27 juillet 2006
27 juil. 2006 à 16:04
si mais la je bloquais tant pis merci quand même (g été voir les sources)


bye
0
bernie666 Messages postés 427 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 29 janvier 2008 1
27 juil. 2006 à 16:05
    Google.fr msdn.com => tu tappes Try Catch et tu auras tout ce qu'il faut ...
0
ptitof71 Messages postés 9 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 27 juillet 2006
27 juil. 2006 à 16:06
ok j'essaye merci encore, désolé d'abuser de votre patience
0
Rejoignez-nous