将位图存储到sql中

时间:2015-02-27 01:03:49

标签: vb.net image storage

我正在为打印账单编写应用程序。我在加载数据中有一个表单。我想自动打印,所以按照这个顺序我保存了我填充表单的bmp图像,然后存储到mdf数据库中,以便后期打印每一行/单元格(在这种情况下为图像)。但是,当我将我的表格拖到预览表格中时(如果我正确存储数据,只是为了chek),每行的ID都出现了,但我看不到该行的图像...问题是:什么我在这里做错了吗? (过去3天我观看了很多教程,但我还不知道该怎么办)

Public Sub toBitMap()
  'Define un nuevo bitmap con las dimensiones del form  
  Dim miBitMap As New Bitmap(imprimir.Width, imprimir.Height)
  ' Dibuja la imagen del form en un objetoBitmap
  imprimir.DrawToBitmap(miBitMap, New Rectangle(0, 0, imprimir.Width, imprimir.Height))
  Dim memoryStreamBuffer = New MemoryStream()
  miBitMap.Save(memoryStreamBuffer, ImageFormat.Bmp)
  Dim data As Byte() = memoryStreamBuffer.GetBuffer()
  Dim saveImage As imagenesTableAdapter = New imagenesTableAdapter
  Dim a As String = saveImage.insertImagen(data)
  If multiple.iteraciones <= 0 Then
    cantidad = saveImage.ScalarQuery()
  End If
End Sub

1 个答案:

答案 0 :(得分:0)

感谢@Der Golem和@Lars Tech(Plutonix)给出了很好的答案。我以这种方式实现了目标的一半:

    Public Sub toBitMap(ByVal indice)
    'Define un nuevo bitmap con las dimensiones del form  
    Dim miBitMap As New Bitmap(imprimir.Width, imprimir.Height)
    ' Dibuja la imagen del form en un objetoBitmap
    imprimir.DrawToBitmap(miBitMap, New Rectangle(0, 0, imprimir.Width, imprimir.Height))
    'definicion de nombre y path para archivos temporales
    Dim tempImageName As String = "tmp" & indice & ".png"
    Dim tmpImageAbsolutePath As String = Application.StartupPath & _  
    "\data\" & tempImageName
    'Creacion de nuevo png
    miBitMap.Save(tmpImageAbsolutePath, ImageFormat.Png)
    'Carga de paths a la base
    Dim saveImage As imagenesTableAdapter = New imagenesTableAdapter
    Dim a As String = saveImage.Insert(tempImageName)
    If indice <= 1 Then
        cantidad = saveImage.ScalarQuery()
    End If
End Sub

现在我只清理tmp文件夹和db。

**只需要知道如何将这些文件(图片)打印成pdf进行打印,但我有谷歌! :d