0

単純なデータ テーブルがあり、データ リピータで使用する画像ボックスにバインドできるように、1 つの列に画像の内容を含める必要があります。次のコードはSystem.Drawing.Bitmap、有効なデータ型ではないエラーを返しますが、有効なデータ型が見つかりません。

Dim ListData As DataTable = New DataTable()
Dim FirstImageColumn As DataColumn = New DataColumn()
FirstImageColumn.DataType = System.Type.GetType("System.Drawing.Bitmap")
FirstImageColumn.ColumnName = "FirstImage"
ListData.Columns.Add(FirstImageColumn)
4

2 に答える 2

1

私はそれが古い投稿であることを知っています。この答えは私にとってはうまくいきます。

 Dim fileImg As Image = fileIcon.ToBitmap
 column = New DataColumn("Image", GetType(Bitmap))
                    DocumentsDT.Columns.Add(column)
 dr("Image") = fileImg
于 2015-05-01T20:42:12.057 に答える
0

DataColumn のプロパティ DataType を、オブジェクトによって認識されない型に設定することはできません。

プロパティ DataTypeの MSDN で読むことができます

DataType プロパティは、次の基本 .NET Framework データ型をサポートしています:
Boolean、Byte、Char、DateTime、Decimal、Double、Guid、Int16、Int32、Int64、SByte、Single、String、TimeSpan、UInt16、UInt32、UInt64、Byte[]

画像を DataTable に格納するには、その DataType プロパティを に定義する必要がありますbyte[]。その後、その型の列に画像を格納するコードを簡単に見つけることができます。

例(テストされていません)

Dim ListData As DataTable = New DataTable()
Dim FirstImageColumn As DataColumn = New DataColumn()
FirstImageColumn.DataType = System.Type.GetType("System.Byte[]")
FirstImageColumn.ColumnName = "FirstImage"
ListData.Columns.Add(FirstImageColumn)
Dim img = Image.FromFile("....path to image file...")
Dim row = ListData.NewRow()
Dim ms = new MemoryStream()
img.Save(ms, System.Drawing.Imaging.ImageFormat.Gif)
row["FirstImage"] = ms.ToArray()
ListData.Rows.Add(row)
于 2013-10-05T19:53:04.337 に答える