• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1696
  • Last Modified:

Value of type '1-dimensional array of Byte' cannot be converted to 'System.Drawing.Image'.

Dear Experts,

I have a PictureBox i am trying to get bitmap picture from so as to save in MSSQL2005.

I guess i need to convert the picturebox image to Byte in order to save it into the Database.

I receive the above error messages from the point highlighted. Please HELP!!!


        CustEntity.CustPict = ReadImage(mImageFilePath)  ------>>Error

=================
 ReadImage(mImageFilePath)  = This has blue wringling underline.

=========
    Private mCustPict As Byte

    Public Property CustPict() As Byte
        Get
            Return mCustPict
        End Get
        Set(ByVal value As Byte)
            mCustPict = value
        End Set
    End Property

Private Sub BtnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAdd.Click
        'CustEntity.CustID = "1"
        CustEntity.CustName = TxtName.Text
        CustEntity.CustAddress = TxtAddress.Text
        CustEntity.CustDOB = TxtDOB.Text
        CustEntity.CustPict = ReadImage(mImageFilePath)  ------>>Error

        CustInfo.AddNewCustomer(CustEntity)
        ClearScreen()
    End Sub

    Private Shared Function ReadImage(ByVal p_postedImageFileName As String) As Byte()
        Dim p_fileType() As String = {".gif", ".jpg", ".bmp"}
        Dim isValidFileType As Boolean = False
        Try
            Dim file As New FileInfo(p_postedImageFileName)

            For Each strExtensionType As String In p_fileType
                If strExtensionType = file.Extension Then
                    isValidFileType = True
                    Exit For
                End If
            Next
            If isValidFileType Then
                Dim fs As New FileStream(p_postedImageFileName, FileMode.Open, FileAccess.Read)

                Dim br As New BinaryReader(fs)

                Dim image As Byte() = br.ReadBytes(CInt(fs.Length))

                br.Close()

                fs.Close()

                Return image
            End If
            Return Nothing
        Catch ex As Exception
            Throw ex
        End Try
    End Function


   Public Sub AddNewCustomer(ByVal CustInfo As CustomerEntities)
        Dim connection As SqlConnection = _
            New SqlConnection(CustConn.GetConnected())
        connection.Open()
        Try
            Dim command As SqlCommand = _
                New SqlCommand("AddCustomer", connection)
            command.CommandType = CommandType.StoredProcedure

            'command.Parameters.AddWithValue("@CustID", CustInfo.CustID)
            command.Parameters.AddWithValue("@CustName", CustInfo.CustName)
            command.Parameters.AddWithValue("@CustAddress", CustInfo.CustAddress)
            command.Parameters.AddWithValue("@CustDOB", CustInfo.CustDOB)
            command.Parameters.AddWithValue("@CustPix", CustInfo.CustPict)

            MsgBox("Rows inserted: " + _
                              command.ExecuteNonQuery().ToString)
        Catch ex As Exception
            MsgBox(ex.Message)
        Finally
            connection.Close()
        End Try
    End Sub

Open in new window

0
ukconcepts
Asked:
ukconcepts
  • 2
  • 2
1 Solution
 
Patrick MatthewsCommented:
The byte data type stores an unsigned integer from 0 to 255, so it is no wonder that you were not able to use it to store an image :)
0
 
ukconceptsAuthor Commented:
i changed all Byte to [Byte]() and it worked fine. How do i award the marks?

Thanks both
0
 
Patrick MatthewsCommented:
Marcjev is the one who really answered the question; s/he should get all the points :)
0
 
ukconceptsAuthor Commented:
Thank you all. I quite agree too.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now