Bonjour,
Je souhaite ajouter une "Localite" à ma BDD access. Cette dernière génère l'ID, il me faut donc récupérer celui-ci.
Voici mon code :
Etant donné qu'il n'y a qu'une localite repondant aux critères de recherches, me suis dit, récupéront la valeur de cette façon :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Dim con As New OleDb.OleDbConnection Dim cmd As New OleDb.OleDbCommand Dim dr As OleDbDataReader con.ConnectionString = ModuleGeneral.cheminBDD con.Open() cmd = New OleDbCommand("insert into Localite(ID_Pays,CP,Denomination) values(" & ID_Pays & "," & CP & ",'" & NomComune & "')", con) cmd.ExecuteNonQuery() cmd = New OleDbCommand("SELECT ID_Localite FROM Localite WHERE ID_Pays = " & ID_Pays & " AND CP = " & CP & " AND Denomination ='" & NomComune & "'", con) dr = cmd.ExecuteReader() While dr.Read Me.ID_Localite = dr("ID_Localite") End While con.Close() listeLocalite.Add(Me) MsgBox("Localité correctement ajoutée")
cependant il faut l'entourer de while.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Me.ID_Localite = dr("ID_Localite")
Pourquoi ? Y a t'il moyen d'éviter les while ? Faut-il utiliser autre chose que OleDbDataReader lorsqu'on on ne recupère pas un enregistrement mais juste une valeur ? Une alternative pour récupérer l'ID ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 While dr.Read Me.ID_Localite = dr("ID_Localite") End While
Merci beaucoup !
Partager