visuel studio 2008/inserer donnees dans une table sans doublon

visuel studio 2008/inserer donnees dans une table sans doublon - SQL/NoSQL - Programmation

Marsh Posté le 07-12-2009 à 15:14:22    

bonjour
voila je travaille tjr sur visuel studio 2008 et la je fais une requete d'insertion sur une table mais je veux avant d'inserer la donnee dans la table controler si celle ci existe et dans ce cas un message d"'erreur m'indique "erreur". donc je ne veux pas que des doublon existe dans ma table.
ma requete que je dois ameliorer est: insert into type_materiel (categ) values ('"+textboxtype.text+"')
merci

Reply

Marsh Posté le 07-12-2009 à 15:14:22   

Reply

Marsh Posté le 07-12-2009 à 15:22:29    

tu fais un SELECT Count(*) FROM typemateriel where categ = "ton_texte", et si le résultat est > 0, alors la valeur que tu veux rentrer existe déjà.
si tu es sous SQL Server, tu peux faire aussi un  

Code :
  1. IF EXISTS(SELECT * FROM type_materiel WHERE categ = "ton_texte" ) THEN (le matos existe déjà)


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 07-12-2009 à 16:00:20    

je suis sur visuel studio 2008 donc j'opte pour la premiere solution, mais je ne comprend pas comment l'exploiter,devrais_je faire le select count apres une condition ensuite l'insertion?
merci

Reply

Marsh Posté le 07-12-2009 à 16:09:27    

- tu exécutes le SELECT Count via un ExecuteScalar() (qui récupère la valeur contenue à la 1ere ligne de la 1ere colonne du recordset résultant)
- puis dans ton code métier, tu testes la valeur de retour de ExecuteScalar : si elle est > 1, alors doublon
 
exemple :

Code :
  1. // cmd est un objet SqlCommand (valable pour SQL Server). trouve l'équivalent pour ton SGBD (xxxCommand)
  2. cmd.CommandText = "SELECT Count(*) FROM typemateriel where categ = 'ton_texte'";
  3. Int32 count = (Int32) cmd.ExecuteScalar();
  4. if (count >1)
  5. {
  6.   // doublon...
  7. }


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed