PDA

View Full Version : روش بازیابی عکسی که به صورت VarBinary ذخیره شده؟



morteza_1234m
پنج شنبه 24 اردیبهشت 1388, 22:29 عصر
روش بازیابی عکسی که به صورت VarBinary ذخیره شده چیست؟
من یک عکس رو با کد زیر در بانکم ذخیره کردم
نوع فیلد هم VarBinary است؟
کد مربوط به اضافه کردن به FlowLayoutControl

OpenFileDialog openf = new OpenFileDialog();
openf.Title = "انتخاب عکس";
openf.Filter = "All files (*.*)|*.*|JPEG files (*.jpg)|*.jpg|GIF files (*.gif)|*.gif|" +
"PNG files (*.png)|*.png|BMP files (*.bmp)|*.bmp";
if (openf.ShowDialog ()== DialogResult.OK)
{
PictureBox Pic = new PictureBox();
Pic.Size = new System.Drawing.Size(220,190);
Pic.Cursor = System.Windows.Forms.Cursors.No;
Pic.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
Pic.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
Pic.BackgroundImage = System.Drawing.Image.FromFile(openf.FileName);
flowLayoutPanel1.Controls.Add(Pic);
Class1 cls1 = new Class1();
cls1.savepathpic(openf.FileName);
کد مربوط به متد SavePathPic

public string savepathpic(string sppic)
{

pathpic = sppic;
return 0;

}
public string savepathpic()
{
return pathpic;
}
کد مربوط به ذخیره عکس

string str1 = "INSERT INTO emp(name,family,[father name],shsh,address,tel,[loc birth],salary,title,id ,[user id],birth,pic) VALUES (@name, @family,@fathername,@shsh,@address,@tel,@locbirth, @salary,@title,@id1,@userid ,@birth,@pic)";
SqlConnection con = new SqlConnection("server=.;integrated security=True;database=PaperList");
Class1 cls2 = new Class1();


PictureBox Pic = new PictureBox();
Pic.Size = new System.Drawing.Size(220, 190);
Pic.Cursor = System.Windows.Forms.Cursors.No;
Pic.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
Pic.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
Pic.BackgroundImage = System.Drawing.Image.FromFile(cls2.savepathpic());

MemoryStream ms = new MemoryStream();


byte[] arrPic = ms.GetBuffer();
ms.Close();
cmd.Parameters.AddWithValue("@pic", arrPic);

البته رشته اتصال و str1 دقیقا جاش اونجا نیست
وقتی insert می زنم می زنه اطلاعات با موفقیت وارد شد ولی وقتی می رم تو بانک SQL ام جلوی فیلد مربوطه نام نوع فیلد که binary را می زنه
خوب به خودم گفتم شاید ذخیره شده باشه ولی نباید اینجا چیزی نشون بده
حالا به فرض که اطلاعات ذخیره شده باشه چگونه اونا رو از حالت باینری خارج کرده و تبدیل به خود عکس کنم .
اگر دوستان راهنمایی کنند خیلی ممنون میشم