مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

تاپیک مورد نظر بسته شده است

کاربر سایت

sakhi

عضویت از 1396/05/17

بازخوانی عکس از دیتاگرید ویو

  • دوشنبه 10 مهر 1396
  • 12:51
تشکر میکنم

سلام من می خوام وقتی روی هر سطری از دیتاگریدویو کلیک کردم اطلاعات مربروط به اون در تکست باکس های مربوطه وارد شوند. البته در این مورد مشکلی ندارم . فقط عکس رو نمی تونم بازخوانی کنم. ضمنا من از تکنولوژی Entity Framework مدل Code First استفاده می کنم. ممنون می شم کدهای مربوط به این مورد را اعلام بفرمایید.

پاسخ های این پرسش

تعداد پاسخ ها : 9 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • دوشنبه 10 مهر 1396
  • 16:41

عکس در بانک ذخیره شده با مسیر فیزیکی ؟

کاربر سایت

sakhi

عضویت از 1396/05/17

  • دوشنبه 10 مهر 1396
  • 16:50

سلام. بله بصورت باینری ذخیره شده

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • دوشنبه 10 مهر 1396
  • 18:51

با استفاده از CurrentRow میتونید خط جاری رو بدست بیارید و کلید اصلی رو استخراج کنید

سپپس کوئری بزنید در بانک و اون ستون رو واکشی کنید و نمایش دهید

List<int> _selectedIds = new List<int>();
        protected void dataGridView1_SelectionChanged(object sender, EventArgs e)
        {
            if (dataGridView1.CurrentRow.Selected)
                _selectedIds.Add(dataGridView1.CurrentRow.Index);
            else
                _selectedIds.Remove(dataGridView1.CurrentRow.Index);
        }
        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Last Selected Index = " + _selectedIds[_selectedIds.Count - 1].ToString());
        }

کاربر سایت

sakhi

عضویت از 1396/05/17

  • سه شنبه 11 مهر 1396
  • 08:54

سلام جناب مدائنی عزیز. سطر جاری دیتاگرید رو می تونم بدست بیارم. ضمنا تمام تکست باکس ها نیز با انتخاب سطر دیتاگرید پر می شوند فقط عکس چون بصورت باینری در دیتابیس ذخیره شده نمی تونم بازخوانی کنم. تصویرش رو نیز ضمیمه کردم.

کاربر سایت

sakhi

عضویت از 1396/05/17

  • سه شنبه 11 مهر 1396
  • 08:58

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • سه شنبه 11 مهر 1396
  • 09:20
کاربر سایت

sakhi

عضویت از 1396/05/17

  • سه شنبه 11 مهر 1396
  • 09:27

شرمنده جناب مدائنی این مورد با ado استفاده شده که من قبلا با این روش در پروژه دیگری استفاده کرده ام. الان با entity framework مدل code first کار میکنم که متاسفانه نمی تونم تصویر رو با این مدل بازخوانی کنم.

کاربر سایت

sakhi

عضویت از 1396/05/17

  • سه شنبه 11 مهر 1396
  • 09:34

یکی از دوستان این کد رو معرفی کردن که متاسفانه این کد نیز خطا میده. کد بالایی دریافت تصویر از سطر دیتاگردید و انتقال به picture box است و کد پایینی تبدیل باینری به تصویر می باشد.

کاربر سایت

sakhi

عضویت از 1396/05/17

  • سه شنبه 11 مهر 1396
  • 11:59

بالاخره مشکلم با این کد حل شد. ممنون بابت زحمتی که کشیدید. این کد رو هم برای استفاده دیگران میذارم

با کد پایین با کلیک کردن روی یک سطر از دیتاگریدویو شماره آیدی سطر رو میگیرم و داخل متغیر id  میریزیم.
int id = Convert.ToInt32(dataGridView1.CurrentRow.Cells["id"].Value.ToString());
 
با کد پایین شماره ایدی بدست امده را در جدول دیتابیس مقایسه میکنیم .
                nametabel lastInsertedImage = context.nametabel.OrderByDescending(image => image.id == id).First();
 
در کد پایین کد باینری تبدیل به عکس میشود و داخل پیکچرباکس p1ریخته مشود و برای ما نمایش داده میشود.
                p1.Image = byteArrayToImage(lastInsertedImage.pic1.ToArray());
 
با کد پایین کد باینری را تبدیل به عکس میکنیم.
  private Image byteArrayToImage(byte[] p)
        {
            MemoryStream MemoryStream1 = new MemoryStream(p);
            Image returnImage = Image.FromStream(MemoryStream1);
            return returnImage;
        }

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

تاپیک مورد نظر بسته شده و امکان درج پاسخ وجود ندارد

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)