CleemS
Messages postés19Date d'inscriptionvendredi 4 janvier 2008StatutMembreDernière intervention10 juin 2008
-
3 mars 2008 à 17:02
CleemS
Messages postés19Date d'inscriptionvendredi 4 janvier 2008StatutMembreDernière intervention10 juin 2008
-
10 juin 2008 à 18:29
Bonjour à tous !
Je croyais avoir trouvé l'astuce pour ajouter une ligne dans une table de ma Base de Données (MySQL) avec du code, mais apparemment c'est pas. =/
Voici le code que j'utilise, et qui donc, ne marche pas ^^ :
Et ma classe Cl_MySQL, du moins la partie qui nous intéresse ici :
Function MySQLQuery(ByVal Query As String)
Dts.Clear()
Try
Requete = Query
HostConn.Open()
'On execute la requête
Dta = New MySqlDataAdapter(Requete, HostConn)
Dta.Fill(Dts)
Return Dts
'On renvoi la table
Catch myerror As MySqlException
MessageBox.Show("Erreur de Connection à la Base de Données : " & myerror.Message)
Return 0
End Try
End Function
Voili Voilou, donc pour une requête banale du Genre SELECT * FROM TABLE, sa marche très bien, mais pas pour une requête de type INSERT. Je ne comprends pas pourquoi, pourriez-vous m'éclairer s'il vous plait?
CleemS
Messages postés19Date d'inscriptionvendredi 4 janvier 2008StatutMembreDernière intervention10 juin 20085 4 mars 2008 à 12:06
Salut, et merci de m'aider !
Je ne vois pas quels apostrophes je dois enlevé dans mon code. =/
Sinon j'ai remplacé tous les + par des &, et comme avant, quand j'ajoute une nouvelle ligne, aucune erreur, mais quand je vais vérifié dans la BDD, rien n'a été ajouté.
J'y pense sa peut venir d'autre chose, mais j'avais fait des tests et sa marchait, quand j'ajoute une nouvelle recette (prog' de compta ^^), je lance une MsgBox pour demander à l'utilisateur s'il souhaite vraiment l'ajouter, et je vérifie sa réponse comme ceci :
If DialogResult = 6 Then
En cherchant un peu c'est tout ce que j'ai trouvé, et après quelques tests sa m'avait l'air de fonctionner, mais peut être qu'il ne faut pas faire comme sa?
J'ai grossi le texte c'est dans le
INSERT INTO Table(Champ1,Champ2) tu n'as pas besoin d'apostrophes.
Au lieu de la msgbox utilise la messagebox du .Net
Au niveau des boutons et de l'icon tu as plusieurs options
Et la réponse est écrite en clair Yes, No Cancel.....
Dim reponse
As DialogResultreponse = MessageBox.Show(
"Texte du message",
"Titre de la messagebox", MessageBoxButtons.YesNo, MessageBoxIcon.Information)
cs_Berurier
Messages postés31Date d'inscriptionlundi 23 décembre 2002StatutMembreDernière intervention28 juin 2013 16 mars 2008 à 21:25
Salut,
Ta fonction MySQLQuery te permet de charger une table dans un dataset mais ne te permet pas de mettre à jour la table. il te faudrait créer les commandes.
Utilises une autre fonction comme celle-ci :
Public Function ExecuteCommande(ByVal Requete As String, Optional ByVal Ajout As Boolean = False) As Long
conn correspond à hostconn
Dim MyCmd As New MySql.Data.MySqlClient.MySqlCommand(Requete, conn)
If Microsoft.VisualBasic.Right(Requete, 1) <> ";" Then Requete = Requete & ";"
If Connection("ExecuteCommande") = True Then ' Si connection OK
Try
If Ajout Then Requete Requete & "SELECT LAST_INSERT_ID();" > SELECT LAST_INSERT_ID() va te retourner le dernier index ce qui te permetrra de savoir que la commande à réussi.
executecommande= MyCmd.ExecuteScalar
Else
executecommande= MyCmd.ExecuteNonQuery
End If
Catch ex As System.Net.Sockets.SocketException
' à gerer
Catch ex As MySql.Data.MySqlClient.MySqlException
' a gérer
Finally
MyCmd.Dispose()
End Try
End If
End Function
En espérant t'avoir aidé ....
A +
On s'en fout que les poulets soient élévés en plein air , de toutes facons , on ne mange pas les poumons....
Vous n’avez pas trouvé la réponse que vous recherchez ?
CleemS
Messages postés19Date d'inscriptionvendredi 4 janvier 2008StatutMembreDernière intervention10 juin 20085 10 juin 2008 à 18:29
3mois plus tard me revoilà sur mon programme, et oui l'exam des PTI c'est dans 1semaine !!! =/
Merci pour vos réponses Berurier & lim.
En effet on dirait que ma fonction MySQLQuery ne permet pas l'ajout, car aucun message d'erreur mais aucun ajout aussi.
Je suis en train d'essayer ta Fonction Berurier, mais il n'y a qu'un problème :
If Connection("ExecuteCommande") = True Then ' Si connection OK
Le 'Connection' n'est pas reconnu par VB et je ne sais que mettre, le HostConn ne marche pas non plus.