using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; using System.IO; //author:Morteza Naeimabadi Location=IRAN ,Yazd //written in 2008/03/12 namespace SampleOfMorteza { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { //We are using SQL express. //My database name is "PictureDb". SqlConnection con = new SqlConnection ("Server=.;database=PictureDb;integrated security=true"); //I have used a table named "tblUsers" and fill the fields SqlCommand com = new SqlCommand("insert into tblUsers (fldCode,fldPic) values(1,@Pic)", con); //In here, I have to save the picturebox image to tblUsers //because you were not able to send the PictureBox1.Image //to field "fldPic" that is of kind //"image" in SQL SERVER EXPRESS, then you should do something else // and that is converting //your picture box image to an array of bytes and then sending //that array to database. //Below, we have used a stream which will be used to //contain our picturebox image bytes. MemoryStream stream=new MemoryStream(); //through the instruction below, we save the //image to byte in the object "stream". pictureBox1.Image.Save(stream,System.Drawing.Imaging.ImageFormat.Jpeg); //Below is the most important part, actually you are //transferring the bytes of the array //to the pic which is also of kind byte[] byte[] pic=stream.ToArray(); com.Parameters.AddWithValue("@Pic", pic); try { con.Open(); com.ExecuteNonQuery(); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { con.Close(); } } private void button2_Click(object sender, EventArgs e) { SqlConnection connect = new SqlConnection ("Server=.;database=PictureDb;integrated security=true"); SqlCommand command = new SqlCommand ("select fldPic from tblUsers where fldCode=1", connect); //for retrieving the image field in SQL SERVER EXPRESS //Database you should first bring //that image in DataList or DataTable //then add the content to the byte[] array. //That's ALL! SqlDataAdapter dp = new SqlDataAdapter(command); DataSet ds = new DataSet("MyImages"); byte[] MyData = new byte[0]; dp.Fill(ds, "MyImages"); DataRow myRow; myRow = ds.Tables["MyImages"].Rows[0]; MyData = (byte[])myRow["fldPic"]; MemoryStream stream = new MemoryStream(MyData); //With the code below, you are in fact converting the byte array of image //to the real image. pictureBox2.Image = Image.FromStream(stream); } } }
EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |