Click here to Skip to main content
15,886,110 members
Please Sign up or sign in to vote.
4.00/5 (1 vote)
See more:
HI i can not write English very well sorry
me in c# for save a picture in data base use of this code
//////////////////////////////////////////

C#
try
{
MemoryStream ms = new MemoryStream();
                pictureBox3.Image.Save(ms, pictureBox3.Image.RawFormat);
                byte[] arrImage = ms.GetBuffer();
                ms.Close();

                string strSQL = "insert into picture(pic,IDcustomer) values (@pic,@IDcustomer)"; ;
                SqlCommand cmd = new SqlCommand(strSQL, conn);
        
                cmd.Parameters.Add(new SqlParameter("@pic", SqlDbType.Binary)).Value = arrImage;//picture
           
                cmd.Parameters.AddWithValue("@IDcustomer", Convert.ToInt16(a));
                conn.Open();
                cmd.ExecuteNonQuery();
                conn.Close();
                MessageBox.Show("Insert completed seccessfully."); 
}


/////////////////////////////////////

and if i want to load a picture to pictureBox use of this code:
/
///////////////////////////////////////////////////
C#
try
               {
                   //Get image data from gridview column.
                   byte[] imageData = (byte[])image;
                   //Initialize image variable
                   newImage = null;
                   //Read image data into a memory stream
                   using (MemoryStream ms = new MemoryStream(imageData, 0, imageData.Length))
                   {
                       ms.Write(imageData, 0, imageData.Length);

                       //Set image variable value using memory stream.
                       newImage = Image.FromStream(ms, true);
                   }

                   //set picture
                   pictureBox1.Image = newImage;
             //      System.IO.File.Create("d:\\");
               }


/////////////////////////////////////////////////
if i want to save a load picture to a drive use this code :
C#
newImage.Save(@"D:\soft1.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);

but this code have run time error
error is
A generic error occurred in GDI+

:confused::~ :omg: :((
please help me
Posted
Updated 7-Mar-11 13:44pm
v2

1. Create a System.IO.MemoryStream object.
2. Create a System.IO.FileStream object
3. Save image into MemoryStream
4. Read bytes[] from the MemoryStream
5. Save the image file with FileStream
And Here is the C# sample code;
using System.Drawing.Imaging;
using System.Drawing;
using System.IO;
public static void SaveJpeg
(string path, Image img, int quality)
{
EncoderParameter qualityParam
= new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);
ImageCodecInfo jpegCodec
= GetEncoderInfo(@"image/jpeg");
EncoderParameters encoderParams
= new EncoderParameters(1);
encoderParams.Param[0] = qualityParam;
System.IO.MemoryStream mss = new System.IO.MemoryStream();
System.IO.FileStream fs
= new System.IO.FileStream(path, System.IO.FileMode.Create
, System.IO.FileAccess.ReadWrite);
img.Save(mss, jpegCodec, encoderParams);
byte[] matriz = mss.ToArray();
fs.Write(matriz, 0, matriz.Length);
mss.Close();
fs.Close();
}
 
Share this answer
 
Here you go, try this man.

C# a generic error occurred in GDI+ Solution[^]
 
Share this answer
 
i can to use this
thanks of your help


MemoryStream ms=
new MemoryStream((byte[])dataGridView1["pic", e.RowIndex].Value);
Image img = Image.FromStream(ms,true);
pictureBox1.Image = img;
img.Save("D:\\soft1.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900