Detecter un enregistrement s'il existe déjà ou non (recherche approfondie)

Résolu
germany1970
Messages postés
136
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
22 mars 2014
- 23 avril 2011 à 12:14
germany1970
Messages postés
136
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
22 mars 2014
- 26 avril 2011 à 11:52
Bonjour,
pour la recherche dans une table pour un seul élément j'ai pas de probléme, et voilà le code que j'utilise :

cmd.CommandText "SELECT COUNT(*) FROM ADHERENT WHERE CODE '" & Me.TextBox1.Text & "'"
Dim isPresent As Boolean = False
If (Not cmd.ExecuteScalar Is DBNull.Value) Then
isPresent IIf(cmd.ExecuteScalar 0, 0, 1)

If Not isPresent Then
cmd.CommandText = "INSERT INTO ADHERENT (...) VALUES (...)"
'cmd.ExecuteNonQuery()
Me.TextBox1.BackColor = Color.White
Else
Me.TextBox1.BackColor = Color.Red
MessageBox.Show(" POLICE EXISTE DEJA ")
End If
End If

mais le probléme que j'ai en ce moment et le suivant :
dans la meme table ADHERENT il existe plusieurs N° de police et pour chaque police il existe plusieurs adherents et j'ai deux textbox.

la table est constituée comme ça:
N° police : am1562
N° adhesion : w150
N° adherent : berne
Adresse : paris

ce que je veux c'est quand je tape le numéro de police dans le textbox1 et le numéro d'adhesion dans le textbox2 il m'affiche un message d'erreur si le n° adhesion existe déjà dans cette police.

merci pour votre collaboration habituelle

7 réponses

alexandrevandenberghe
Messages postés
149
Date d'inscription
lundi 24 décembre 2007
Statut
Membre
Dernière intervention
16 juillet 2013
5
26 avril 2011 à 10:51
Bonjour,
Si j'ai bien compris ton probleme, ta solution devrait ressembler à ça:

cmd.CommandText "SELECT COUNT(*) FROM ADHERENT WHERE CODE '" & Me.TextBox1.Text & "' AND CODE_ADHERENT = '" & Me.TextBox2.Text & "'"
Dim isPresent As Boolean = False
If (Not cmd.ExecuteScalar Is DBNull.Value) Then
isPresent IIf(cmd.ExecuteScalar 0, 0, 1)

If Not isPresent Then
cmd.CommandText = "INSERT INTO ADHERENT (...) VALUES (...)"
'cmd.ExecuteNonQuery()
Me.TextBox1.BackColor = Color.White
Else
Me.TextBox1.BackColor = Color.Red
MessageBox.Show(" POLICE EXISTE DEJA POUR CET ADHERENT")
End If
End If 
3
NHenry
Messages postés
14927
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 mai 2022
162
23 avril 2011 à 12:57
Bonjour,

2 solutions :
- Dans la base de données, tu déclare la colonne comme étant sans doublons, dans ce cas, en cas d'ajout, tu aura une erreur.
- Avant de valider, tu fais une requête SELECT pour vois si il y a du monde.

Les 2 solutions peuvent être utilisées en même temps.

Mon site
0
germany1970
Messages postés
136
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
22 mars 2014
3
24 avril 2011 à 02:11
Bonsoir henry,
je prefere la deuxième solution car j'ai un button de validation des informations avant le button enregistrement, mais je veux le code henry svp.ou il y'a une ligne de code à ajouter au code que j'ai posté avec ma question.

merci
0
NHenry
Messages postés
14927
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 mai 2022
162
24 avril 2011 à 18:41
Bonjour,

Tu fais déjà :
cmd.CommandText "SELECT COUNT(*) FROM ADHERENT WHERE CODE '" & Me.TextBox1.Text & "'"

Ensuite, tu peux tester si en faisant un GetDataReader, l'objet retourné est vide (inexistant) ou pas (un enregisterement), et dans ce cas, tu affiche les informations, je ne vois pas comment le dire plus simplement.

Mon site
0

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

Posez votre question
germany1970
Messages postés
136
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
22 mars 2014
3
24 avril 2011 à 21:21
merci henry,
mais comment je vais utiliser getdatareader.le code svp henry.

merci encore
0
NHenry
Messages postés
14927
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 mai 2022
162
24 avril 2011 à 21:31
0
germany1970
Messages postés
136
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
22 mars 2014
3
26 avril 2011 à 11:52
bonjour,
merci bcp alexander je suis entrain de tester.
0