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

Amounaimi Messages postés 3 Date d'inscription lundi 18 avril 2011 Statut Membre Dernière intervention 19 avril 2011 - 19 avril 2011 à 01:02
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 - 16 mai 2011 à 19:23
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

cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
19 avril 2011 à 08:57
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.
0
meryfille Messages postés 3 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 21 avril 2011
19 avril 2011 à 11:42
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
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
16 mai 2011 à 19:23
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 ]
0
Rejoignez-nous