Solved

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

Posted on 2010-08-29
5
1,617 Views
Last Modified: 2013-11-25
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
Comment
Question by:ukconcepts
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
5 Comments
 
LVL 10

Accepted Solution

by:
Marcjev earned 250 total points
ID: 33553345
0
 
LVL 92

Expert Comment

by:Patrick Matthews
ID: 33553379
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
 

Author Comment

by:ukconcepts
ID: 33553419
i changed all Byte to [Byte]() and it worked fine. How do i award the marks?

Thanks both
0
 
LVL 92

Expert Comment

by:Patrick Matthews
ID: 33553453
Marcjev is the one who really answered the question; s/he should get all the points :)
0
 

Author Closing Comment

by:ukconcepts
ID: 33553480
Thank you all. I quite agree too.
0

Featured Post

Free learning courses: Active Directory Deep Dive

Get a firm grasp on your IT environment when you learn Active Directory best practices with Veeam! Watch all, or choose any amount, of this three-part webinar series to improve your skills. From the basics to virtualization and backup, we got you covered.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

by Mark Wills Attending one of Rob Farley's seminars the other day, I heard the phrase "The Accidental DBA" and fell in love with it. It got me thinking about the plight of the newcomer to SQL Server...  So if you are the accidental DBA, or, simp…
For most people, the WrapPanel seems like a magic when they switch from WinForms to WPF. Most of us will think that the code that is used to write a control like that would be difficult. However, most of the work is done by the WPF engine, and the W…
This is Part 3 in a 3-part series on Experts Exchange to discuss error handling in VBA code written for Excel. Part 1 of this series discussed basic error handling code using VBA. http://www.experts-exchange.com/videos/1478/Excel-Error-Handlin…
In this video, viewers are given an introduction to using the Windows 10 Snipping Tool, how to quickly locate it when it's needed and also how make it always available with a single click of a mouse button, by pinning it to the Desktop Task Bar. Int…

734 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question