[VB.Net] Comment implémenter correctement les requêtes SELECT paramétrées ?
Bonjour,
Je désire faire une requête de sélection paramétrée dans une base de donnée access.
Je dois sûrement faire une erreur car mon datarow ne s'actualise pas.
Faut-il le vider après chaque utilisation ?
L'erreur se trouve-t-elle dans ma requête ?
Personnellement, je pencherais du côté du paramètre mais j'ignore où. C'est juste une intuition.
.NET est nouveau pour moi alors soyez indulgent avec mon code ^^
Ce code est donc exécuté lorsque le texte d'une ComboBox est mis à jour.
Il est sensé récupérer les données d'un client en particulier pour pouvoir afficher une fiche signalétique dans une TextBox en mode multiligne.
Je sais pour avoir vérifier que la valeur de mon paramètre est correcte mais la syntaxe de déclaration du paramètre n'est peut-être pas bonne. J'ai écrit cela après maintes recherches en mettant "bout à bout" des morceaux lus à droite et à gauche. Les explications que je trouve sont majoritairement pour sqlserver et non pour access.
Si quelqu'un possède un lien pour les requêtes paramétrées sous access, je lui en serait reconnaissant.
Voici donc le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| sql = "SELECT * FROM TB_CLIENT WHERE NUMERO = ?"
frmPrincipale.conn.Open()
frmPrincipale.command.CommandText = sql
frmPrincipale.command.Parameters.Add("id_client",
OleDbType.Integer).Value = clients.Item(Me.cbClient.Text)
dataAdapter = New OleDbDataAdapter(frmPrincipale.command)
frmPrincipale.command.Connection() = frmPrincipale.conn
dataAdapter.Fill(dataSet, "TB_CLIENT")
dataTable = dataSet.Tables("TB_CLIENT")
frmPrincipale.conn.Close()
rowNumber = 0
dataRow = dataTable.Rows(rowNumber)
Dim infos As String
infos = dataRow("TITRE") & " " & dataRow("NOM") & " " & dataRow
("PRENOM") & Chr(10) & dataRow("NUM")
infos = infos & ", " & dataRow("RUE") & Chr(10) & dataRow("CP") & "
" & dataRow("LOCALITE") & Chr(10)
If Not (String.IsNullOrEmpty(dataRow("TELEPHONE"))) Then
infos = infos & "TEL : " & dataRow("TELEPHONE")
Else
infos = infos & "FAX : " & dataRow("FAX")
End If
infos = infos & Chr(10) & "TVA : " & dataRow("TVA")
Me.tbClient.Text = infos
dataSet.Clear()
dataTable.Clear() |
Merci d'avance à tous ceux qui prendront la peine de me répondre.
Griftou.