Home > other >  How can I insert an image from SQL Server onto a button in VB.net?
How can I insert an image from SQL Server onto a button in VB.net?

Time:10-01

I am having issues assigning an image to every button according to my database.

My current code:

 Dim strsql As String
 Dim ImgSQl As Image

 Dim con As New SqlConnection("constring")
 con.Open()

 strsql = "SELECT Image FROM Inventory WHERE ID=@ID"

 Dim cmd As New SqlCommand(strsql, con)

 ItemID = 1
 cmd.Parameters.Add("@ID", SqlDbType.VarChar).Value = ItemID
 Dim myreader As SqlDataReader
    
 myreader = cmd.ExecuteReader
 myreader.Read()
 ImgSQl = myreader("Image")
 con.Close()

 btn1.Image = ImgSQl

This is the error I'm getting:

Unable to cast object of type 'System.Byte[]' to type 'System.Drawing.Image'

CodePudding user response:

All I had to do was dim as Byte, also adding "()" is really important for it to work. Hope answering my own question helps a VB.net beginner out there.

   Dim strsql As String
   Dim ImgSql() As Byte
    
     Using con As New SqlConnection("constring")
     con.Open()
    
     strsql = "SELECT Image FROM Inventory WHERE ID=@ID"
    
     Dim cmd As New SqlCommand(strsql, con)
    
     ItemID = 1
     cmd.Parameters.Add("@ID", SqlDbType.VarChar).Value = ItemID
     Dim myreader As SqlDataReader
        
     myreader = cmd.ExecuteReader
     myreader.Read()
     ImgSql = myreader("Imagen")
     Dim ms As New MemoryStream(ImgSql)
     btn1.Image = Image.FromStream(ms)
     con.Close()
    End Using
    
  • Related