cs_Cryborg
Messages postés30Date d'inscriptionlundi 27 janvier 2003StatutMembreDernière intervention 8 février 2007
-
24 sept. 2004 à 11:55
cs_Cryborg
Messages postés30Date d'inscriptionlundi 27 janvier 2003StatutMembreDernière intervention 8 février 2007
-
27 sept. 2004 à 09:25
Bonjour,
Je tente désespérément d'insérer une ligne dans un fichier Access en utilisant ADO.NET, mais je n'arrive à rien... Aucun message d'erreur, et pourtant, rien ne s'écrit... J'arrive parfaitement à lire les infos, mais écrire reste problèmatique.... Voici le code que j'utilise :
Public Function ConnectDBNoms()
strConnNoms = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & AppStart & "\Listing.mdb;"
objConnectionNoms = New OleDbConnection
objConnectionNoms.ConnectionString = strConnNoms
objConnectionNoms.Open()
strSqlNoms = "SELECT * FROM Personnes ORDER BY Nom ASC"
objCommandNoms = New OleDbCommand(strSqlNoms)
objDataAdapterNoms = New OleDbDataAdapter(objCommandNoms)
objCommandNoms.Connection() = objConnectionNoms
objDataSetNoms.Clear()
objDataAdapterNoms.Fill(objDataSetNoms, "Personnes")
objDataTableNoms = objDataSetNoms.Tables("Personnes")
End Function
Private Sub MenuItem8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem8.Click
Dim NewLigne As DataRow = objDataSetNoms.Tables("Personnes").NewRow()
objDataAdapterNoms.InsertCommand = New OleDbCommand
objDataAdapterNoms.InsertCommand.Connection = objConnectionNoms
objDataAdapterNoms.InsertCommand.CommandText = "INSERT INTO Personnes(Genre, Nom, Prenom, IDAdresse) VALUES (?,?,?,?)"
NewLigne("Genre") = 0
NewLigne("Prenom") = "NPrénom"
NewLigne("Nom") = "NNom"
NewLigne("IDAdresse") = CInt(ListView1.SelectedItems.Item(0).Text)
objDataSetNoms.Tables("Personnes").Rows.Add(NewLigne)
Try
objDataAdapterNoms.Update(objDataSetNoms, "Personnes")
MsgBox("Insertion réussie !")
Catch ex As Exception
MsgBox(ex.ToString())
End Try
objConnectionNoms.Close()
End Sub
cs_Cryborg
Messages postés30Date d'inscriptionlundi 27 janvier 2003StatutMembreDernière intervention 8 février 2007 27 sept. 2004 à 09:25
Je viens de réussir à faire marcher ce bout de code ! L'erreur venait du fait qu'il y avait un champ en NuméroAuto, et le fait de ne pas l'indiquer dans la commande INSERT a éliminé le problème !
cs_Cryborg
Messages postés30Date d'inscriptionlundi 27 janvier 2003StatutMembreDernière intervention 8 février 2007 24 sept. 2004 à 13:39
Merci pour ta réponse cboulas,
J'ai déjà utilisé ADODB, et effectivement c'est beaucoup plus simple d'utilisation... Mais je voulais absolument essayer les fameux DataSets dont je n'entends que du bien, et qui pourtant ne sont pas une sinécure niveau utilisation...
Si jamais je n'y arrive pas, je reviendrais à ces bons vieux recordsets, mais je voudrais tout de même comprendre pour quoi ce bout de code, qui vient pourtant de MSDN en grande partie, et où je n'ai changé que les noms des objets....
L'erreur vient effectivement de ce bout de code que tu as mis en évidence, mais comme il me sort "Insertion réussie !", je n'arrive pas à voir où ça cloche... Surtout que même avec un pas-à-pas, tout a l'air correct et se remplit bien... On dirait tout simplement que les changements du DataSet ne sont pas retransmis au DataAdapter...