-
Junior Member
C# Storing Images
How to store image in DB and how to retrieve it from DB into PictureBox....
Hi,
i hv empid,empname,empphot in my Form...now wen i run the appln..i want to get these details...thn how can i get the image of the emp from DB.
So,How can i store image into DB and how can i retrive it from DB into PictureBox...
my DB is SQLSERVER 2005 and i want it in C# windows application....
plzz help me......
Advance Thnxxxxx
-
Junior Member
Re: C# Storing Images
After getting the image path follow this : private void upload() { try { //read image bytes into a byte array byte[] imagedata = readfile(txtimagepath.text); //initialize sql server connection sqlconnection cn = new sqlconnection(txtconnectionstring.text); //set insert query string qry = "insert into imagesstore (originalpath,imagedata) values(@originalpath, @imagedata)"; //initialize sqlcommand object for insert. Sqlcommand sqlcom = new sqlcommand(qry, cn); //we are passing original image path and image byte data as sql parameters. Sqlcom.parameters.add(new sqlparameter("@originalpath", (object)txtimagepath.text)); sqlcom.parameters.add(new sqlparameter("@imagedata", (object)imagedata)); //open connection and execute insert query. Cn.open(); sqlcom.executenonquery(); cn.close(); //close form and return to list or images. This.close(); } catch(exception ex) { messagebox.show(ex.tostring()); } } //open file in to a filestream and read data in a byte array. Byte[] readfile(string spath) { //initialize byte array with a null value initially. Byte[] data = null; //use fileinfo object to get file size. Fileinfo finfo = new fileinfo(spath); long numbytes = finfo.length; //open filestream to read file filestream fstream = new filestream(spath, filemode.open, fileaccess.read); //use binaryreader to read file stream into byte array. Binaryreader br = new binaryreader(fstream); //when you use binaryreader, you need to supply number of bytes to read from file. //in this case we want to read entire file. So supplying total number of bytes. Data = br.readbytes((int)numbytes); return data; } //get the image from database. Private void getimagesfromdatabase() { try { sqlconnection cn = new sqlconnection(txtconnectionstring.text); //initialize sql adapter. Sqldataadapter adap = new sqldataadapter("select image from imagesstore", cn); //initialize dataset. Dataset ds = new dataset(); //fill dataset with imagesstore table. Adap.fill(ds, "imagesstore"); //fill picturebox with image. Byte[] imagedata = (byte[])ds.tables["imagesstore"].rows[0]["imagedata"].tostring(); //initialize image variable image newimage; //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; } catch(exception ex) { messagebox.show(ex.tostring()); } } let me know if you face any problems.
-
Junior Member
Re: C# Storing Images
After getting the image path follow this :
private void upload()
{
try
{
//read image bytes into a byte array
byte[] imagedata = readfile(txtimagepath.text);
//initialize sql server connection
sqlconnection cn = new sqlconnection(txtconnectionstring.text);
//set insert query string qry = "insert into imagesstore (originalpath,imagedata) values(@originalpath, @imagedata)";
//initialize sqlcommand object for insert.
Sqlcommand sqlcom = new sqlcommand(qry, cn);
//we are passing original image path and image byte data as sql parameters. Sqlcom.parameters.add(new sqlparameter("@originalpath", (object)txtimagepath.text)); sqlcom.parameters.add(new sqlparameter("@imagedata", (object)imagedata));
//open connection and execute insert query.
Cn.open();
sqlcom.executenonquery();
cn.close();
//close form and return to list or images.
This.close(); }
catch(exception ex)
{
messagebox.show(ex.tostring());
}
}
//open file in to a filestream and read data in a byte array.
Byte[] readfile(string spath)
{
//initialize byte array with a null value initially.
Byte[] data = null;
//use fileinfo object to get file size.
Fileinfo finfo = new fileinfo(spath);
long numbytes = finfo.length;
//open filestream to read file
filestream fstream = new filestream(spath, filemode.open, fileaccess.read);
//use binaryreader to read file stream into byte array.
Binaryreader br = new binaryreader(fstream);
//when you use binaryreader, you need to supply number of bytes to read from file.
//in this case we want to read entire file. So supplying total number of bytes.
Data = br.readbytes((int)numbytes);
return data;
}
//get the image from database.
Private void getimagesfromdatabase()
{
try
{
SqlConnection CN = new SqlConnection(txtConnectionString.Text);
//Initialize SQL adapter.
SqlDataAdapter ADAP = new SqlDataAdapter("Select Image from ImagesStore", CN);
//Initialize Dataset.
DataSet DS = new DataSet();
//Fill dataset with ImagesStore table.
ADAP.Fill(DS, "ImagesStore");
//Fill picturebox with image.
byte[] imageData = (byte[])DS.Tables["ImagesStore"].Rows[0]["ImageData"].ToString();
//Initialize image variable
Image newImage;
//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;
}
catch(exception ex)
{
messagebox.show(ex.tostring());
}
}
let me know if you face any problems.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules