Ich habe diesen Code hier versucht, Bild aus der Datenbank in Bildbox einzufügen und anzuzeigen: stackoverflow.com/questions/5624760/store-picture-to-database-retrieve-from-db-into- pictureboxWie aktualisiere ich Bild in Mysql-Datenbank
und ja, es funktioniert, aber wenn ich ein Update mit der gleichen Syntax zu tun versucht, so einzufügen hätte es diesen Fehler:
dies ist der Einsatz Syntax i verwenden:
Dim FileSize As UInt32
Dim mstream As New System.IO.MemoryStream()
gambar.Image.Save(mstream, System.Drawing.Imaging.ImageFormat.Jpeg)
Dim arrImage() As Byte = mstream.GetBuffer()
FileSize = mstream.Length
mstream.Close()
call konek
strSQL = "insert into tbmahasiswa VALUES ('" & _
txtNIM.Text & "','" & _
txtNama.Text & "','" & _
Format(dtpTanggal.Value, "yyyy-MM-dd") & "','" & _
txtAlamat.Text & "','" & _
cboJurusan.Text & "',@gambar)"
com = New MySql.Data.MySqlClient.MySqlCommand(strSQL, conn)
With com
.Parameters.AddWithValue("@gambar", arrImage)
.ExecuteNonQuery()
End With
und dies der Code i Bild aus der Datenbank zu zeigen, verwenden Feld Bild:
Dim imgData As Byte()
call konek
strSQL = "select * from tbMahasiswa where NIM ='" & txtNIM.Text & "'"
com = New MySql.Data.MySqlClient.MySqlCommand(strSQL, conn)
Using rd = com.ExecuteReader
rd.Read()
If rd.HasRows Then
txtNama.Text = rd.Item(1)
dtpTanggal.Value = rd.Item(2)
txtAlamat.Text = rd.Item(3)
imgData = TryCast(rd.Item(5), Byte())
If imgData IsNot Nothing Then
Using ms As New MemoryStream(imgData)
gambar.Image = CType(Image.FromStream(ms), Image)
End Using
End If
End If
End Using
Beide Einfügen und Abrufen von Bild oben Code funktioniert! Und dann verwende ich diesen Code für Updates:
Dim FileSize As UInt32
Dim mstream As New System.IO.MemoryStream()
gambar.Image.Save(mstream, System.Drawing.Imaging.ImageFormat.Jpeg)
Dim arrImage() As Byte = mstream.GetBuffer()
FileSize = mstream.Length
mstream.Close()
call konek
strSQL = "update tbmahasiswa set Nama ='" & txtNama.Text & _
"', TglLahir ='" & Format(dtpTanggal.Value, "yyyy-MM-dd") & _
"', Alamat ='" & txtAlamat.Text & _
"', Jurusan ='" & cboJurusan.Text & _
"', gambar =' @gambar" & _
"' where NIM ='" & txtNIM.Text & "'"
com = New MySql.Data.MySqlClient.MySqlCommand(strSQL, conn)
With com
.Parameters.AddWithValue("@gambar", arrImage)
.ExecuteNonQuery()
End With
und dann bekam ich die Fehler wie im Bild oben, alle anderen Daten außer dem Bild korrekt gespeichert, werden sie eine unbekannte Datei Blob 8 KB Größe.
ich bin immer noch Neuling bei einfügen, aktualisieren, Bild in VB löschen, bitte können Sie mir sagen, was ist falsch mit dem Update-Syntax-Code, ist es schon wahr, aber mir fehlt etwas? oder stimmt es überhaupt nicht mit der Syntax? bitte ich brauche Ihren Leitfaden hier ...
UPDATE: tatsächlich gibt es "Call Konek" über "STRSQL" im Code, "Konek" haben den Code für die Mysql-Verbindung zu öffnen, legte ich es in das separate Modul hier der vollständige Code in meinem Modul:
Module modKoneksi
Public conn As New MySql.Data.MySqlClient.MySqlConnection
Public rd As MySql.Data.MySqlClient.MySqlDataReader
Public com As MySql.Data.MySqlClient.MySqlCommand
Public strSQL As String
Public Sub konek()
conn.Close()
strSQL = "server='localhost';user='root';pwd='';database='dbsekolah';"
Try
conn.ConnectionString = strSQL
conn.Open()
Catch ex As MySql.Data.MySqlClient.MySqlException
MsgBox(ex.Message)
End
End Try
End Sub
End Module
Hoffnung das macht Sie leichter mein Problem
Ähm, Ihr Code ist nichts von dem der Frage oder Antwort und ignoriert die in [diese Antwort] beschriebenen Probleme (http://stackoverflow.com/a/31370711/1070452) – Plutonix
Sie haben auch einfache Anführungszeichen um den Parameter @ Gambar. Sie sollten besser alle Einfügungen und Aktualisierungen ändern, um Parameter zu verwenden, um die üblichen SQL-Injection-Angriffe zu vermeiden. Eine Datenzugriffsbibliothek wie Dapper kann dazu beitragen, dass der gesamte Kesselblechcode um die Konfigurationsparameter herum entfernt werden muss. –
ich sehe, eigentlich weiß ich immer noch nicht links oder rechts mit diesem probleme. Wenn es für Sie nicht lästig ist, können Sie ein neues vb-Projekt zum Einfügen erstellen, aktualisieren und in der Picturebox abrufen und dann hochladen.Ich weiß, es dauert nur ein paar Minuten für dich. gut, wenn es zu mühsam ist, können Sie genauer erklären, wo und was ist falsch in dem Code, den ich verwende? danke –