Bin langsam am verzweifeln. Habe auch schon viele threads gelesen und Lösungsvorschläge ausprobiert.
Folgendes Problem:
In einer SQL-Server Tabelle werden Bilder in einem Feld vom Data Type image (size 16) verwaltet (ich weiß, ist veraltet, aber damit muss ich erstmal arbeiten).
Dieses möchte ich gern in einer VB.NET-Form-PictureBox anzeigen lassen, hier über einen Button aufgerufen.
Private Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click
getImageData("11000000")
End Sub
Private Sub getImageData(ByVal IN_ID As String)
Dim conns as String = "Server=XXX007;DataBase=MyDB;Integrated Security=SSPI"
dim m_CON1 as SqlConnection = New SqlConnection(conns)
Dim ds As New DataSet
Dim sqlString As String = "SELECT Bild FROM tbl_Bild WHERE(Bild_ID = " & IN_ID & ")"
Dim cmd As New SqlCommand
Dim da As SqlDataAdapter
Try
cmd.Connection = m_CON1
cmd.CommandText = sqlString
da = New SqlDataAdapter(cmd)
da.Fill(ds, "MyBild")
Dim i As Integer = ds.Tables("MyBild").Rows.Count
If i > 0 Then
' Byte-Array mit den Daten befüllen
Dim bytBLOBData() As Byte = CType(ds.Tables("MyBild").Rows(i - 1).Item(0), Byte())
' Per MemoryStream in die PictureBox bringen
Dim stmBLOBData As New MemoryStream(bytBLOBData)
PictureBox1.Image = Image.FromStream(stmBLOBData)
End If
Catch ex As Exception
MsgBox(ex.Message)
Finally
m_CON1.Close()
End Try
End Sub
bei PictureBox1.Image = Image.FromStream(stmBLOBData) schmiert das Programm immer ab mit der Fehlermeldung "Ungültiger Parameter": Eine Ausnahme (erste Chance) des Typs "System.ArgumentException" ist in System.Drawing.dll aufgetreten. Das Ergebnis im Dataset sagt, es handelt sich um ein Feld vom Typ System.Byte[].
Was mache ich falsch?
LG Jörg