Ajout d'un enregistrement à la base de données

Signaler
Messages postés
3
Date d'inscription
lundi 18 avril 2011
Statut
Membre
Dernière intervention
19 avril 2011
-
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
-
SVP
comment j'ajoute un enregistrement à la base de données
voila mon code ( Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim cn As New OleDb.OleDbConnection
Dim nom1 As String
Dim prénom1 As String

cn = New OleDb.OleDbConnection("provider=Microsoft.ACE.oledb.12.0; data source=c:\bd.accdb")
cn.Open()

MsgBox("CONNECTION REUSSIE")
nom1 = TextBox1.Text
prénom1 = TextBox2.Text
Dim cmd As String

cmd = ("insert into Table1(nom, prénom) values (nom1, prénom1)")



Dim MyoledbCommand = New OleDb.OleDbCommand(cmd, cn)
MyoledbCommand.ExecuteNonQuery()

cn.Close()

End Sub
mais toujours il m'affiche le message suivant(Aucune valeur donnée pour un ou plusieurs des paramètres requis.)

3 réponses

Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
12
Salut,

là de suite je vois un souci dans ta requête. Il faut concaténer les valeurs des variables nom1 et prenom1, et pas les chaînes de caractères. Cela donnerai un truc du genre :

cmd = ("insert into Table1 (nom, prenom) values ('" & nom1 & "', '" & prenom1 & "')")


PS : - j'ai enlevé les accents dans les noms de champs et de variables, c'est à éviter.
- j'ai mis le '&' pour la concaténation mais je suis pas complètement sûr que ce soit le bon opérateur en VB.
- il n'y a aucun gestion des caractères spéciaux dans la requête que j'ai écrite. Si l'utilisateur saisi un nom ou un prénom avec des quotes ['] ou l'équivalent commentaire pour ton SGBD (ex. : [--] dans mySQL), tu risques d'avoir des surprises. S'il s'agit d'une ébauche d'un module de connexion je te conseille d'y faire très attention.
Messages postés
3
Date d'inscription
mercredi 13 avril 2011
Statut
Membre
Dernière intervention
21 avril 2011

ou bien

dim cmd as new oldbcommand
cmd = ("insert into Table1(nom, prénom) values (nom1, prénom1)")
cmd.parameters.addwithvalue("nom",nom1)
cmd.parameters.addwithvalue("prénom",prénom1)

cn.open()
cmd.ExecuteNonQuery()
cn.close()

mais pour votre solution,il est impossible de donnes une valeur car vous mettez votre paramettre(nom1,prenom1) dans la chaine string"".


just mery
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
14
Bonjour,

Il fallait poster la question sur vbfrance dans un thème VB.NET, pas un thème commun tel que le bar.

[ Déplacé sur vbfrance ]