Solved

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

Posted on 2010-08-29
5
1,595 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
  • 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

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Creating an analog clock UserControl seems fairly straight forward.  It is, after all, essentially just a circle with several lines in it!  Two common approaches for rendering an analog clock typically involve either manually calculating points with…
Use this article to create a batch file to backup a Microsoft SQL Server database to a Windows folder.  The folder can be on the local hard drive or on a network share.  This batch file will query the SQL server to get the current date & time and wi…
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…
Internet Business Fax to Email Made Easy - With eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, fr…

757 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

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now