【问题标题】:VB.Net DataColumn requires valid data typeVB.Net DataColumn 需要有效的数据类型
【发布时间】:2013-10-12 12:25:46
【问题描述】:

我有一个简单的数据表,我需要一列来包含图像的内容,以便我可以将其绑定到图片框以用于数据转发器。我的以下代码返回 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)

【问题讨论】:

    标签: vb.net image types bitmap


    【解决方案1】:

    我知道这是一个旧帖子。这个答案对我有用。

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

    【讨论】:

      【解决方案2】:

      您不能将 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)
      

      【讨论】:

        猜你喜欢
        • 2014-06-11
        • 1970-01-01
        • 2021-05-14
        • 1970-01-01
        • 2015-12-20
        • 1970-01-01
        • 1970-01-01
        • 2011-07-11
        • 1970-01-01
        相关资源
        最近更新 更多