PDA

View Full Version : سوال: اپدیت نشدن فیلد عکس در دیتا بیس



vB.N3T
جمعه 22 فروردین 1393, 15:29 عصر
سلام مهندسین عزیز
برنامه من یه مشکلی که داره اینه..وقتی رکوردی رو ثبت میکنی و ثبت میشه
تو فرم اپدیت یه کمبو باکس هست که رکورد رو از اونجا انتخاب میکنه و وقتی انتخاب کرد اطلاعات سلکت میشه و تو تکس باکس اطلاعات رکورد برای اپدیت شدن نمایش داده میشه
و عکس اون رکورد هم تو پیکچر باکس میاد
حالا کاربر مثلا نام اون رکورد رو تغیر میده و بقیه اطلاعات رو دست نمیزنه و عکس هم همون عکس قبلی که تو پیکچر باکس هست میزاره همون قبلیا باشه
وقتی اپدیت رو میزنه خطامیگیره و میگه عکس رو وارد کن
خطاش اینه ضمینه کردم

کد های اپدیت هم اینه

var select_update = (from s in db.tbl_tools where s.tool_id == int.Parse(textBox8.Text) select s).Single();
tbl_tool nw = select_update;
nw.tool_name = textBox5.Text;
nw.tool_desc = textBox4.Text;
nw.tool_command = textBox6.Text;
pictureBox2.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
byte[] arraypic = ms.GetBuffer();

nw.tool_pic = arraypic;

db.SubmitChanges();
MessageBox.Show("data update");
utility.MyTextBoxes(this, "Clear");

var select = from s in db.tbl_tools select new { s.tool_name };
comboBox1.DataSource = select;
comboBox1.DisplayMember = "tool_name";
comboBox1.ValueMember = "Tool_name";

vB.N3T
جمعه 22 فروردین 1393, 23:03 عصر
دوستانننن هم اکنون نیازمندیم

behzadkhan
جمعه 22 فروردین 1393, 23:10 عصر
با سلام

امتحان کن ببین جواب میده:

===============================
قبل مقدار دهی پیکچر باکس

خصوصیت Image پیکچر باکس را null کن.

متغییر هایی عکس باینری را به عکس قابل نمایش در پیکچر باکس می دهند را نیز null کن

=================================

اگه جواب نداد بگو تا یک راه دیگه پیدا کنیم

با تشکر

vB.N3T
شنبه 23 فروردین 1393, 17:52 عصر
این عکسو ببین
یه ابزاری رو سرچ میکنه وقتی ابزارو از کمبو باکس انتخاب میکنه.اطلاعات ثبت شده ب همراه عکس میاد تو تکس باکس و پیکچر باکس میاد
حالا طرف اسم یا توضیحات ابزار رو اپدیت میکنه . اما عکس رو نمیخواد عوض کنه و همین رو میخواد بزاره باشه..وقتی اپدیت رو میزنی خطا بالا رو میده.

behzadkhan
شنبه 23 فروردین 1393, 20:37 عصر
با سلام

ببین جواب میده:
==============
بجای این:


pictureBox2.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
byte[] arraypic = ms.GetBuffer();



اینو بنویس:


using (Bitmap tempImage = new Bitmap(pictureBox2.Image))
{
tempImage.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
} byte[] arraypic = ms.GetBuffer();




با تشکر

vB.N3T
شنبه 23 فروردین 1393, 21:24 عصر
اقافونتا ب هم ریخته

using (Bitmap tempImage = new Bitmap(pictureBox2.Image))
{
tempImage.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
} byte[] arraypic = ms.GetBuffer();


ممنون این روش جواب داد

behzadkhan
شنبه 23 فروردین 1393, 21:33 عصر
تکرار کردم:

=============================


pictureBox2.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
byte[] arraypic = ms.GetBuffer();



با این:


using (Bitmap tempImage = new Bitmap(pictureBox2.Image))
{
tempImage.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
}
byte[] arraypic = ms.GetBuffer();



با تشکر