Ich habe eine Datentabelle mit mehreren Datensätzen. Jede Zeile der Datentabelle hat ein Feld, das ein Bild speichert. Wenn ich die Dataret-Zeilen durchlaufen habe, um sie in eine Tabelle einer Datenbank einzufügen, wird jedes Feld der Zeile korrekt gespeichert; aber für jeden Datensatz wird das Bild in der ersten Zeile der Datentabelle gespeichert. Ich verfolgte den Code und es traf die Zeilen, die darauf zugreifen und versuchen, die Bilder in jeder Zeile der Datentabelle zu speichern. Ich benutze VB.NET und die Datenbank ist MS Access.Liste der Bilder aus Datentabelle in MS Access-Datenbank einfügen, VB.NET
Mein Code sieht wie folgt aus:
For Each dr As DataRow In dt.Rows
cmd.CommandText = "INSERT INTO Table1 (" & _
"[ID], " & _
"[Name], " & _
"[BDate], " & _
…….
"[TelNo], " & _
"[Photo]) " & _
" VALUES(" & _
dr("ID") & ", '" & _
dr("Name") & "', " & _
dr("BDate") & ", '" & _
…….
dr("TelNo") & "', " & _
img & ")"
cmd.Parameters.Add(img, OleDb.OleDbType.Binary).Value = dr("Photo")
cmd.ExecuteNonQuery()
Next
Zu Thomas G. img ist ein Parameter, dessen Wert von der Anweisung in der nächsten Zeile angegeben werden soll: 'cmd.Parameters.Add (img, OleDb.OleDbType.Binary) .Wert = dr ("Photo") ' Wir können dr ("Photo") nicht direkt in den Werten verwenden, da es sich um Byte-Array-Daten handelt. Alle Elemente im Befehlstext müssen String-Typ sein. –