私はいくつかのレコードを含むデータテーブルを持っています。データテーブルの各行には、ピクチャを格納するフィールドがあります。データテーブルの行をループしてデータベースのテーブルに挿入すると、その行のすべてのフィールドが正しく保存されます。すべてのレコードに対して、データテーブルの最初の行のピクチャが保存されます。私はコードをトレースし、アクセス可能な行に当たって、データテーブルの各行にピクチャを保存しようとします。私はVB.NETを使用しており、データベースはMS Accessです。データテーブルからMS Accessデータベース、VB.NETに画像のリストを挿入
私のコードは次のようになります。
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
To Thomas G. imgは、次の行の文によって値が提供されるはずのパラメータです。 'cmd.Parameters.Add(img、OleDb.OleDbType.Binary).Value = dr( "Photo" ) ' バイト配列データなので、値のlilstに直接dr( "Photo")を使用することはできません。コマンドテキストのすべての要素は、String型でなければなりません。 –