mohammad kafiyan
دوشنبه 14 شهریور 1390, 21:35 عصر
با سلام به دوستان
من با استفاده ازlinq to sql قصد ویرایش تصاویر مربوط به رکورد مورد نظر دارم که با مشکلات زیر مواجهه شدم
من در یکی از فرم ها یم یک datagirdview دارم که وقتی روی سطری از گرید datagirdview کلیک می کنم و بر روی دگمه ویرایش کلیک می کنم فرم دیگری برایم باز شده که شامل 2 عددpictuerbox می باشد ، تصاویر مربوط به آن رکورد توسط کد زیر در pictuerbox ها نمایش می دهم
var Query = amlak.pictuer_amlak_ejareh();(یک تابع است برای نمایش تصاویر)
byte[] arrPicture;
MemoryStream ms;
arrPicture = ((byte[])(Query.image1.ToArray()));
ms = new MemoryStream(arrPicture);
frm.pictureBox1.Image = Image.FromStream(ms);
frm.pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
frm.textBox17.Text = Query.name_pic1;
arrPicture = ((byte[])(Query.image2.ToArray()));
ms = new MemoryStream(arrPicture);
frm.pictureBox2.Image = Image.FromStream(ms);
frm.pictureBox2.SizeMode = PictureBoxSizeMode.StretchImage;
frm.textBox18.Text = Query.name_pic2;
ms.Close();
و بعد از آن تصاویر را ویرایش میکنم ( انتخاب تصاویر ) و دگمه ویرایش را می زنم و با موفقیت عملیات ویراش در table تصاویر انجام میشه .
ولی دو مشکل برایم پیش آمده
کد مربوط به ویرایش :
pictureBox1.Image.Save(ms, pictureBox1.Image.RawFormat);
byte[] arrImage = ms.GetBuffer();
amlak.Name_pic1 = textBox17.Text;
amlak.Path_pic1 = arrImage;
ms.Close();
pictureBox2.Image.Save(ms1, pictureBox2.Image.RawFormat);
arrImage = ms1.GetBuffer();
amlak.Name_pic2 = textBox18.Text;
amlak.Path_pic2 = arrImage;
ms1.Close();
amlak.pic_update(1);
1- وقتی دوباره از فرم ، از datagirdview روی همان سطر رکورد که تصاویر آنرا ویرایش کردم از گرید datagirdview کلیک می کنم و بر روی دگمه ویرایش کلیک می کنم فرم برایم باز شده که باز همان تصاویر مربوط به آن رکورد به صورت تکراری نمایش داده می شود در صورتی که در بالا توضیح دادم تصویر دیگری را انتخاب کردم و عملیات ویراش با موفقیت انجام شده
در ضمن وقتی که از بزنامه خارج می شم و دوباره برنامه اجرا می کنم وبروی همان رکورد که تصویر آنرا عوض کردم کلیک کنم به درستی توصیر عوض شده را نمایش می دهد
2- و مشکل دیگر هم این است که اگر تصویر مربوط به pictuerbox1 را عوض کنم و pictuerbox2 را عوض نکنم و دگمه ویرایش را کلیک کنم با پیغام خطای زیر مواجهه می شوم در صورتی برعکس آنرا عمل کنم خطا نمی گیرد
A generic error occurred in GDI+.
من با استفاده ازlinq to sql قصد ویرایش تصاویر مربوط به رکورد مورد نظر دارم که با مشکلات زیر مواجهه شدم
من در یکی از فرم ها یم یک datagirdview دارم که وقتی روی سطری از گرید datagirdview کلیک می کنم و بر روی دگمه ویرایش کلیک می کنم فرم دیگری برایم باز شده که شامل 2 عددpictuerbox می باشد ، تصاویر مربوط به آن رکورد توسط کد زیر در pictuerbox ها نمایش می دهم
var Query = amlak.pictuer_amlak_ejareh();(یک تابع است برای نمایش تصاویر)
byte[] arrPicture;
MemoryStream ms;
arrPicture = ((byte[])(Query.image1.ToArray()));
ms = new MemoryStream(arrPicture);
frm.pictureBox1.Image = Image.FromStream(ms);
frm.pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
frm.textBox17.Text = Query.name_pic1;
arrPicture = ((byte[])(Query.image2.ToArray()));
ms = new MemoryStream(arrPicture);
frm.pictureBox2.Image = Image.FromStream(ms);
frm.pictureBox2.SizeMode = PictureBoxSizeMode.StretchImage;
frm.textBox18.Text = Query.name_pic2;
ms.Close();
و بعد از آن تصاویر را ویرایش میکنم ( انتخاب تصاویر ) و دگمه ویرایش را می زنم و با موفقیت عملیات ویراش در table تصاویر انجام میشه .
ولی دو مشکل برایم پیش آمده
کد مربوط به ویرایش :
pictureBox1.Image.Save(ms, pictureBox1.Image.RawFormat);
byte[] arrImage = ms.GetBuffer();
amlak.Name_pic1 = textBox17.Text;
amlak.Path_pic1 = arrImage;
ms.Close();
pictureBox2.Image.Save(ms1, pictureBox2.Image.RawFormat);
arrImage = ms1.GetBuffer();
amlak.Name_pic2 = textBox18.Text;
amlak.Path_pic2 = arrImage;
ms1.Close();
amlak.pic_update(1);
1- وقتی دوباره از فرم ، از datagirdview روی همان سطر رکورد که تصاویر آنرا ویرایش کردم از گرید datagirdview کلیک می کنم و بر روی دگمه ویرایش کلیک می کنم فرم برایم باز شده که باز همان تصاویر مربوط به آن رکورد به صورت تکراری نمایش داده می شود در صورتی که در بالا توضیح دادم تصویر دیگری را انتخاب کردم و عملیات ویراش با موفقیت انجام شده
در ضمن وقتی که از بزنامه خارج می شم و دوباره برنامه اجرا می کنم وبروی همان رکورد که تصویر آنرا عوض کردم کلیک کنم به درستی توصیر عوض شده را نمایش می دهد
2- و مشکل دیگر هم این است که اگر تصویر مربوط به pictuerbox1 را عوض کنم و pictuerbox2 را عوض نکنم و دگمه ویرایش را کلیک کنم با پیغام خطای زیر مواجهه می شوم در صورتی برعکس آنرا عمل کنم خطا نمی گیرد
A generic error occurred in GDI+.