Recuperer valeur d'un OleDbDataReader dont on sait qu'il n'a qu'un élément
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 :
Code:
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") |
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:
Me.ID_Localite = dr("ID_Localite")
cependant il faut l'entourer de while.
Code:
1 2 3
| While dr.Read
Me.ID_Localite = dr("ID_Localite")
End While |
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 ?
Merci beaucoup !