Wrox Programmer Forums

Need to download code?

View our list of code downloads.

Go Back   Wrox Programmer Forums > .NET > Other .NET > ADO.NET
Password Reminder
Register
| FAQ | Members List | Search | Today's Posts | Mark Forums Read
ADO.NET For discussion about ADO.NET.  Topics such as question regarding the System.Data namespace are appropriate.  Questions specific to a particular application should be posted in a forum specific to the application .
Welcome to the p2p.wrox.com Forums.

You are currently viewing the ADO.NET section of the Wrox Programmer to Programmer discussions. This is a community of tens of thousands of software programmers and website developers including Wrox book authors and readers. As a guest, you can read any forum posting. By joining today you can post your own programming questions, respond to other developers’ questions, and eliminate the ads that are displayed to guests. Registration is fast, simple and absolutely free .
DRM-free e-books 300x50
Reply
 
Thread Tools Search this Thread Display Modes
  #1 (permalink)  
Old July 7th, 2005, 03:58 AM
Authorized User
 
Join Date: Jul 2005
Location: Pune, Maharasthra, India.
Posts: 18
Thanks: 0
Thanked 0 Times in 0 Posts
Default Problem in Parameter Object

Respected Forum Members,
        iam facing a problem in saving a picture image to my database table. Also i want to display the saved image in my VB.NET Form also.Though i bound the image property of a picturebox control to the DataTable Object (say table), the place where im facing an error message is in the btnAdd_Click() sub procedure in the section where value for Parameter @Photo is defined. Iam supplying value through FileName property of the OpenFileDialog Control. Also tell me can i supply value to @phone variable through image property of a PictureBox control.
For the sake of completeness of the problem mentioned, i would also like to tell you that in sql server 2000 i had used image data type for the Photo. But i didn't find any image datatype while defining stored procedure for the table. WHY IS IT SO ?

Below is the code of my project for your considerations. please HELP!!!

Private Sub BindFields()

        txtEmpID.DataBindings.Add("Text", table, "EmployeeID")
        txtFirstName.DataBindings.Add("Text", table, "e_FirstName")
        txtLastName.DataBindings.Add("Text", table, "e_LastName")
        txtDesignation.DataBindings.Add("Text", table, "Designation")
        txtAddress.DataBindings.Add("Text", table, "e_Address")
        txtCity.DataBindings.Add("Text", table, "e_City")
        txtPhone.DataBindings.Add("Text", table, "e_Phone")
        txtMobile.DataBindings.Add("Text", table, "e_Mobile")
        txtEmail.DataBindings.Add("Text", table, "e_Email")
        picEmployee.DataBindings.Add("Image", table, "Photo")

        StatusBar1.Text = "Ready"

    End Sub

Private Sub btnAdd_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles btnAdd.Click

           dim objCommad as sqlCommand = New sqlCommand()

           objCommand.Connection = myConnection
            objCommand.CommandText = "INSERT INTO Employees " & _
       "VALUES(@EmployeeID, @e_FirstName, @e_LastName, " & _
      "@Designation, @e_Address, @e_City, @e_Phone, @e_Mobile, " & _
      "@e_Email, @Photo)"

            objCommand.Parameters.Add("@EmployeeID", txtEmpID.Text)
            objCommand.Parameters.Add("@e_FirstName", xtFirstName.Text)
            objCommand.Parameters.Add("@e_LastName", txtLastName.Text)
            objCommand.Parameters.Add("@Designation", Designation.Text)
            objCommand.Parameters.Add("@e_Address", txtAddress.Text)
            objCommand.Parameters.Add("@e_City", txtCity.Text)
            objCommand.Parameters.Add("@e_Phone", txtPhone.Text)
            objCommand.Parameters.Add("@e_Mobile", txtMobile.Text)
            objCommand.Parameters.Add("@e_Email", txtEmail.Text)

The above lines of code are working but the line of code below is creating a problem. I got the error message that "nvarchar and image type are incompatible"

 objCommand.Parameters.Add("@Photo", OpenImageFile.FileName)

I had tried to fix it by changing the above to this

objCommand.Parameters.Add("@Photo", picEmployee.image)

but still the problem isn't solved. I got the error message that "index( 0 based ) must be equal to or greater than 0 and less than the size of the argument list"


            myConnection.Open()

            Try
                objCommand.ExecuteNonQuery()
            Catch err As SqlException
                MessageBox.Show(err.Message)
            End Try

            myConnection.Close()

             BindFields()

         End Sub

Hope this time my problem won't get ignored by the honourable forum members as i explained it in detail.

            thanking you

Reply With Quote
  #2 (permalink)  
Old July 9th, 2005, 01:19 PM
planoie's Avatar
Friend of Wrox
Points: 16,481, Level: 55
Points: 16,481, Level: 55 Points: 16,481, Level: 55 Points: 16,481, Level: 55
Activity: 0%
Activity: 0% Activity: 0% Activity: 0%
 
Join Date: Aug 2003
Location: Clifton Park, New York, USA.
Posts: 5,407
Thanks: 0
Thanked 16 Times in 16 Posts
Default

In SQL Server, the "image" datatype doesn't explicitly mean and image can go there. It is more general to define binary image data. This "image" can be a binary image of anything, in some cases an actual image. Take a look at the System.Data.SqlDbType enumeration, there is a member called "Binary" as well as one call "Image". "Image" is described as "A variable-length stream of binary data ranging from 0 to 231 -1 (or 2,147,483,647) bytes." This should satisfy your needs.

Unfortunately, I don't work with WinForms enough to know how to solve the rest of this problem. When dealing with dynamic binary data (images, uploaded documents, etc.) I seldom store them in the database, but rather store them on the server and store a path reference to them in the database. There are many folks who feel that you shouldn't store this type of binary data in the database because it drags down the DB engine. I won't get into this debate, I just want to share how I usually do this.

-Peter
Reply With Quote
  #3 (permalink)  
Old July 9th, 2005, 01:42 PM
Friend of Wrox
 
Join Date: Oct 2004
Location: India.
Posts: 224
Thanks: 0
Thanked 1 Time in 1 Post
Send a message via MSN to ashu_from_india Send a message via Yahoo to ashu_from_india
Default

hi peter,

u said tht u store images in the server and store a path reference to them in the database.

can u display images in Crystal Reports.
actually i m talking abt printing ID-Cards sort of report

plz help

Ashu


Reply With Quote
  #4 (permalink)  
Old July 9th, 2005, 01:51 PM
planoie's Avatar
Friend of Wrox
Points: 16,481, Level: 55
Points: 16,481, Level: 55 Points: 16,481, Level: 55 Points: 16,481, Level: 55
Activity: 0%
Activity: 0% Activity: 0% Activity: 0%
 
Join Date: Aug 2003
Location: Clifton Park, New York, USA.
Posts: 5,407
Thanks: 0
Thanked 16 Times in 16 Posts
Default

Sorry, I don't use Crystal reports either so I don't have any idea how they could bring up images.

-Peter
Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Parameter object malfunction - out parameter dash dev C# 2005 6 December 4th, 2007 12:58 PM
Session Parameter with Custom Object tna55 ASP.NET 2.0 Basics 8 February 6th, 2007 09:57 AM
How to get request object parameter vikas verma Pro JSP 0 December 22nd, 2004 12:52 PM
Object as parameter in a web service method evandro.paula .NET Web Services 3 October 14th, 2003 02:20 PM



All times are GMT -4. The time now is 07:37 PM.


Powered by vBulletin®
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
© 2013 John Wiley & Sons, Inc.