2013-10-05 13 views
0

我有一個簡單的數據表,我需要一列包含圖像的內容,以便我可以將它綁定到一個圖片框用於數據中繼器。我的下面的代碼返回的錯誤System.Drawing.Bitmap不是一個有效的數據類型,但我找不到一個是。VB.Net DataColumn需要有效的數據類型

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

您不能將DataColumn的DataType屬性設置爲對象無法識別的類型。

在MSDN的property DataType你能讀懂

數據類型屬性支持以下基本的.NET Framework數據類型:
布爾,字節,字符,日期時間,小數,雙,GUID的Int16, 的Int32,Int64的,爲SByte,單,字符串,時間跨度,UINT16,UInt32的,UINT64, 字節]

要存儲在DataTable的圖片,你需要它的數據類型屬性定義了爲0,則可以很容易地找到的代碼的圖像存儲在該類型

例如柱(未測試)

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) 
0

我知道這是舊的文章。這個答案適用於我。

Dim fileImg As Image = fileIcon.ToBitmap 
column = New DataColumn("Image", GetType(Bitmap)) 
        DocumentsDT.Columns.Add(column) 
dr("Image") = fileImg