我有一个简单的数据表,我需要一列来包含图像的内容,以便我可以将它绑定到图片框以便在数据中继器中使用。我的以下代码返回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)
答案 0 :(得分:0)
您无法将DataColumn的属性DataType设置为对象无法识别的类型。
在property DataType的MSDN中,您可以阅读
DataType属性支持以下基本.NET Framework数据类型:
Boolean,Byte,Char,DateTime,Decimal,Double,Guid,Int16, Int32,Int64,SByte,Single,String,TimeSpan,UInt16,UInt32,UInt64, 字节[]
要在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)