Lindsey,
This is a very complete sample I made a while ago, I even do not know if it
is still correct. It does not show the image as blob however as a nice
thumbnail in a real webpage (which you can change as you want to delete that
part and take the original image).
See what you can do with it.
I hope this helps?
Cor
\\\For the database the image database sample from the Resource kit however
you can change that of course for your own database..
\\\It needs 2 forms with a listbox, a picturebox and a label on form1
\\\webform1
Private Sub Page_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
If Not IsPostBack Then
Dim conn As New SqlClient.SqlConnection _
("Server=localhost;" & "DataBase=Northwind;" & _
"Integrated Security=SSPI")
Dim da As New SqlClient.SqlDataAdapter _
("SELECT FileName, PictureID FROM Picture", conn)
Dim ds As New DataSet
Me.Image1.Visible = False
ListBox1.AutoPostBack = True
Try
da.Fill(ds)
ListBox1.DataSource = ds.Tables(0)
ListBox1.DataTextField = "FileName"
ListBox1.DataValueField = "PictureID"
ListBox1.DataBind()
Catch sqlExc As SqlClient.SqlException
Me.Label1.Text = sqlExc.ToString
Catch exc As Exception
Me.Label1.Text = exc.ToString
End Try
End If
End Sub
Private Sub ListBox1_SelectedIndexChanged(ByVal sender _
As System.Object, ByVal e As System.EventArgs) _
Handles ListBox1.SelectedIndexChanged
Session.Item("img") = ListBox1.SelectedItem.Value
Image1.Visible = True
Image1.ImageUrl = "http://localhost/WebImage/WebForm2.aspx"
End Sub
///
\\\Webform1
Private Sub Page_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Dim conn As New SqlClient.SqlConnection("Server=localhost;" & _
"DataBase=Northwind;" & "Integrated Security=SSPI")
Dim sqlstr As String = _
String.Format("SELECT Picture FROM Picture WHERE (PictureID = {0})", _
CInt(Session.Item("img")))
Dim cmd As New SqlClient.SqlCommand(sqlstr, conn)
conn.Open()
Dim rdr As SqlClient.SqlDataReader = cmd.ExecuteReader()
rdr.Read()
Dim arrImage() As Byte
arrImage = (CType(rdr.Item("Picture"), Byte()))
Dim ms1 As New System.IO.MemoryStream(arrImage)
Dim origimage As System.drawing.Image
origimage = System.Drawing.Image.FromStream(ms1)
Dim PThumbnail As System.drawing.Image
PThumbnail = origimage.GetThumbnailImage(100, 100, Nothing, New IntPtr)
Dim ms2 As New System.IO.MemoryStream
PThumbnail.Save(ms2, Imaging.ImageFormat.Bmp)
arrImage = ms2.GetBuffer
Response.BinaryWrite(arrImage)
rdr.Close()
conn.Close()
End Sub
///
"Lindsey Howell" <lh*****@xonitek.co.uk>
Hello,
I've encountered a problem when trying to display BLOB images from a SQL
database using VB.NET. This is the code which generates the error:
Dim mySqlConnection As SqlConnection = New
SqlConnection(connectionString)
Dim mySqlCommand As SqlCommand = New
SqlCommand(queryString,
mySqlConnection)
Dim ms as MemoryStream = New MemoryStream
mySqlConnection.Open()
Dim img() As Byte = CType(mySqlCommand.ExecuteScalar,
Byte())
ms.Write(img, 0, img.Length)
Dim bmp As Bitmap = New Bitmap(ms)
Response.ContentType = "image/gif"
bmp.Save(Response.OutputStream, ImageFormat.Gif)
mySqlConnection.Close()
mySqlConnection = Nothing
ms.Close()
This approach is suggested on several websites. However, when i run the
code
it errors on the line where the bitmap (bmp) is declared, with the error
message:
System.ArgumentException: Invalid parameter used. at
System.Drawing.Bitmap..ctor(Stream stream) at ...
Does anyone have an ideas what could be causing this?
Thanks,
Lindsey