Mysql insertion photos et transferer le blob vers une picture box
Bonjour à tous,
Je sais je sais, le sujet a du être largement traité.
J'ai vue et essayé deux trois trucs mais je me heurte à mon incompréhension...
Je n'arrive pas à inserer une photo dans ma base mysql
donc comme le dis la chanson j'ai essayé un truc ou deux et voici le code de mon dernier essais
Dans un button voici ce que j'ai mis
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| ' ouvre une boite de dialogue pour récupérer le chemin et le nom du fichier
Dim dlgOuvrir As OpenFileDialog
Dim cheminAcces As String
dlgOuvrir = New OpenFileDialog()
dlgOuvrir.InitialDirectory = "c:\dos"
dlgOuvrir.Title = "selection du fichier à ouvrir"
dlgOuvrir.Filter = "tous|*.*|Images|*.bmp;*.gif;*.jpg|texte|*.txt;|PDF|*.pdf|Msword2003|*.doc|Msword2007|*.docx"
dlgOuvrir.DefaultExt = "toto"
dlgOuvrir.AddExtension = True
dlgOuvrir.CheckFileExists = False
dlgOuvrir.Multiselect = True
dlgOuvrir.ShowDialog()
cheminAcces = dlgOuvrir.FileName
If (cheminAcces IsNot Nothing) Then
'textbox se rempli bien avec nom du fichier etc
TextBox34.Text = cheminAcces
End If |
connection à la base
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
Dim oConn As MySqlConnection
Dim myCommand As New MySqlCommand
Dim SQL As String
Dim rawData() As Byte
Dim fs As FileStream
Dim sPath As String
oConn = New MySqlConnection()
oConn.ConnectionString = "server =127.0.0.1;user id=xxxxxx; password='yyyyyyy';database= PMV"
sPath = TextBox34.Text |
Et là en fait je ne comprend pas bien le code donc j'ai deja bidouillé un peu mais sans trop comprendre
Code:
1 2 3 4 5 6 7
| fs = New FileStream(sPath, FileMode.Open, FileAccess.Read)
rawData = New Byte(fs.Length) {}
fs.Read(rawData, 0, fs.Length)
fs.Close()
myCommand.Connection = oConn
SQL = "UPDATE bien SET bien.plomb = ?" |
ok le ? est une variable mysql si je ne me trompe ?!
Code:
1 2 3 4 5 6 7 8 9 10 11
| Try
oConn.Open()
myCommand.CommandText = SQL
myCommand.Parameters.AddWithValue("diagnostic", rawData)
myCommand.ExecuteNonQuery()
Catch myerror As MySqlException
MessageBox.Show("Error Connecting to Database: " & myerror.Message)
Finally
oConn.Dispose()
End Try |
Et là j'ai une jolie fatale error sans autres forme de procès
Citation:
sql encountering fatal error during the acces to the database
donc le code fonctionne (en tout cas pas d'erreur VB)
et là si quelqu'un veut bien m'expliquer je luie paye un sachet de cahouette
merci bcp à tous
réponse à la partie Insert / update
bon après avoir réfléchi un peu j'ai viré le ? et je l'ai remplacé par @bindata puis dans la section addwithvalue j'ai placé la variable identique
Ca marche donc y a plus qu'à
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| myCommand.CommandText = "UPDATE bien SET bien.plomb = @bin_data where bien.idbien = '11' ;"
Try
oConn.Open()
myCommand.Parameters.AddWithValue("@bin_data", rawnData)
myCommand.ExecuteNonQuery()
Catch myerror As MySqlException
MessageBox.Show("Error Connecting to Database: " & myerror.Message)
Finally
oConn.Dispose()
End Try |
Au passage j'ai rencontré un pb avec max_allowed_packet la variable mysql qui bloque un envoie massif de packet dans la base, donc il faut modifier cette valeur. j'ai utilisé mysqlworkbench pour ce faire ne pas oublier de redémarrer le server après la modif!
bn a tous
deuxieme etape : la recherche
bon j'en suis à travailler sur l'affichage de l'image via une requete select donc le post n'est toujours pas résolu.
Je mettrai mon code en ligne rapidement pour vous dire ou je coince ... mais si quelqu'un a déja un code prémaché je suis preneur