تاپیک مورد نظر بسته شده است
سلام من می خوام وقتی روی هر سطری از دیتاگریدویو کلیک کردم اطلاعات مربروط به اون در تکست باکس های مربوطه وارد شوند. البته در این مورد مشکلی ندارم . فقط عکس رو نمی تونم بازخوانی کنم. ضمنا من از تکنولوژی Entity Framework مدل Code First استفاده می کنم. ممنون می شم کدهای مربوط به این مورد را اعلام بفرمایید.
عکس در بانک ذخیره شده با مسیر فیزیکی ؟
سلام. بله بصورت باینری ذخیره شده
با استفاده از 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()); }
سلام جناب مدائنی عزیز. سطر جاری دیتاگرید رو می تونم بدست بیارم. ضمنا تمام تکست باکس ها نیز با انتخاب سطر دیتاگرید پر می شوند فقط عکس چون بصورت باینری در دیتابیس ذخیره شده نمی تونم بازخوانی کنم. تصویرش رو نیز ضمیمه کردم.
شرمنده جناب مدائنی این مورد با ado استفاده شده که من قبلا با این روش در پروژه دیگری استفاده کرده ام. الان با entity framework مدل code first کار میکنم که متاسفانه نمی تونم تصویر رو با این مدل بازخوانی کنم.
یکی از دوستان این کد رو معرفی کردن که متاسفانه این کد نیز خطا میده. کد بالایی دریافت تصویر از سطر دیتاگردید و انتقال به picture box است و کد پایینی تبدیل باینری به تصویر می باشد.
بالاخره مشکلم با این کد حل شد. ممنون بابت زحمتی که کشیدید. این کد رو هم برای استفاده دیگران میذارم
با کد پایین با کلیک کردن روی یک سطر از دیتاگریدویو شماره آیدی سطر رو میگیرم و داخل متغیر 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; }
هیچ کاربری تا کنون از این پست تشکر نکرده است
تاپیک مورد نظر بسته شده و امکان درج پاسخ وجود ندارد
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)