PDA

View Full Version : مشکل در دریافت عکس ذخیره شده در sql



bazardeh
یک شنبه 14 فروردین 1390, 19:10 عصر
سلام

من در sql عکس را ذخیره می کنم و وقتی می خواهم از sql بگیرم و در یک pictureBox نمایش دهم کاری که من انجام دادم اینه که اول در یک dataGridView نمایش می دهم بعد با دستور



textBox5.Text = dataGridView1.CurrentRow.Cells[7].Value.ToString();


متون را در هر جایی که می خواهم می برم یا براساس آن دستور می نویسم اما برای عکس گیر کردم کدی که به نظم آمد اینه



pictureBox1.Image = Image.FromFile(dataGridView1.CurrentRow.Cells[9].Value.ToString());// SqlDbType.Binary

لطفاً کمک کنید دستون درد نکنه :لبخندساده:

Directx
دوشنبه 15 فروردین 1390, 00:30 صبح
دوست عزیز شما بهتره که بیایید و یه منبع داده ای مثلا یه data set تعریف کنید و اطلاعات رو بریزید تو اون حالا فایل باینری عکس رو از منبع داده ای بگیرید و تو یه stream بریزید و سپس از دستور image.fromstream استفاده کنید

bazardeh
دوشنبه 15 فروردین 1390, 09:16 صبح
سلام
من برای ذخیره عکس به این صورت از pictureBox گرفتم و در sql ذخیره کردم



if (pictureBox1.Image == null)
pictureBox1.Image = Image.FromFile(@".\User-man.png");
MemoryStream ms = new MemoryStream(); // io قرار دارد در
pictureBox1.Image.Save(ms, pictureBox1.Image.RawFormat);
byte[] arrImage = ms.GetBuffer();
ms.Close();

con.Open();
SqlCommand cm = new SqlCommand("insert into student(codstu,name,fname,namefa,codmali,addres,pi c,yeartavalod,tell,monthtavalod,daytavalod)values( @1,@2,@3,@4,@5,@6,@7,@8,@9,@10,@11)");
cm.Connection = con;
cm.Parameters.Clear();
cm.Parameters.AddWithValue("@1", textBox4.Text);
cm.Parameters.AddWithValue("@2", textBox1.Text);
cm.Parameters.AddWithValue("@3", textBox2.Text);
cm.Parameters.AddWithValue("@4", textBox3.Text);
cm.Parameters.AddWithValue("@5", textBox5.Text);
cm.Parameters.AddWithValue("@6", textBox6.Text);
cm.Parameters.AddWithValue("@7", SqlDbType.Binary).Value = arrImage;
cm.Parameters.AddWithValue("@8", numinsert.Text);
cm.Parameters.AddWithValue("@9", textBox8.Text);
cm.Parameters.AddWithValue("@10", cmbmonthbinsert.Text);
cm.Parameters.AddWithValue("@11", cmbdayinsert.Text);
cm.ExecuteNonQuery();
MessageBox.Show("مشخصات دانش آموز جدید با موفقیت ثبت شد", "پیغام", MessageBoxButtons.OK, MessageBoxIcon.Information);

con.Close();


و حالا می خواهم از sql دریافت کنم و در pictureBox نمایش دهم که هر چی سعی کردم نشد و فقط توانستم در dataGridView ببینم که ذخیره شده
با تشکر

bazardeh
دوشنبه 15 فروردین 1390, 11:08 صبح
لطفاً راهنمایی کنید :لبخندساده:

bazardeh
دوشنبه 15 فروردین 1390, 15:57 عصر
آیا این موضوع امکان دارد ؟؟
آیا عملی است ؟؟
:ناراحت: ؟؟

bazardeh
دوشنبه 15 فروردین 1390, 17:28 عصر
آیا روشی وجود دارد لطفاً کمک کنید :گریه:

ahrimaneahurai
دوشنبه 15 فروردین 1390, 18:33 عصر
همون که میاری توی گرید ویو بعد از این کد استفاده کن.
من خودم از این استفاده می کنم. البته من با گرید جانوس کار میکنم
if (gridEX1.GetRow(gridEX1.Row).Cells["Pic"].Value != null)
{
byte[] bmp = (byte[])gridEX1.GetRow(gridEX1.Row).Cells["Pic"].Value;
using (System.IO.MemoryStream stream = new System.IO.MemoryStream(bmp))
{
Bitmap image = new Bitmap(stream);
pictureBox1.Image = image;
}
}
else
pictureBox1.Image = null;