تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] عرض الصورة في الداتاغرايد فيو مع تقنية Dapper
#1
   
السلام عليكم ورحمة الله وبركاته
اخوتي الاكارم لكم كل الشكر والعرفان سلفا
استخدم تقنية Dapper في حلب البيانات من الجدول ويتم العرض في الداتا غرايد فيو واحد الحقول هو صورة وقد جعلت حقله في الكلاس من نوع Object هكذا
كود :
public object PHOTO { get; set; }


المشكلة :
الان يتم عرض البيانات في الداتا غرايد عدا الصورة .... وانا اريد ان يتم اظهار الصورة في الحقل المسمى  Photo

بالنسبة للعرض من الداتا غرايد الى مربعات النصوص ومربع الصورة لامشكلة في ذلك وهذه هي الاكواد المستخدمة

كود :
private void Form1_Load(object sender, EventArgs e)
       {
           LoadData();
       }
       // تحميل الداتا
       void LoadData()
       {
           List<Cls_BIANKA> LstBIANKA = Cn.Query<Cls_BIANKA>("Select * From BIANKA").ToList();
           BS.DataSource = LstBIANKA;
           Dgv_Data.DataSource = BS;
         
       }
       // عرض الداتا من الداتا غرايد الى مربعات النصوص والصورة
       private void Dgv_Data_CellEnter(object sender, DataGridViewCellEventArgs e)
       {
           try
           {
               Pb_PHOTO.Image = null;
               Txt_ID.Text = Dgv_Data.CurrentRow.Cells[0].Value.ToString();
               Txt_NAME.Text = Dgv_Data.CurrentRow.Cells[1].Value.ToString();
               Txt_ADRESS.Text = Dgv_Data.CurrentRow.Cells[2].Value.ToString();
               Dtp_BDAY.Value = Convert.ToDateTime(Dgv_Data.CurrentRow.Cells[3].Value);
               byte[] Picture4 = (byte[])(Dgv_Data.CurrentRow.Cells[4].Value);
               MemoryStream ms4 = new MemoryStream(Picture4);
               Pb_PHOTO.Image = Image.FromStream(ms4);
           }
           catch (Exception ex)
           {
               MessageBox.Show(ex.Message);
           }


       }
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد }}}
تم الشكر بواسطة: asemshahen5
#2
لم اجربه فعلا لانه تنقصني كل التفاصيل ولكن هل جربت تحويل مصفوفة البايتات الى صور قبل اسنادها الى الداتا جريد فيو ؟ 

كود :
    void LoadData()
      {
       List<Cls_BIANKA> LstBIANKA = Cn.Query<Cls_BIANKA>("Select * From BIANKA").ToList();
       
       foreach(Cls_BIANKA x in LstBIANKA)
           {
               x.PHOTO = Image.FromStream(new MemoryStream(x.PHOTO));
           }    
       
       BS.DataSource = LstBIANKA;
       Dgv_Data.DataSource = BS;
      }
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو , Rabeea Qbaha , Rabeea Qbaha , asemshahen5
#3
السلام عليكم ورحمة الله وبركاته
بارك الله بك اخي انس على ردك ومساعدتك في ايجاد حل
اخي فكرت بنفس الفكرة لكن لم ينجح معي الامر ... والكود الذي اوردته في ردك اعطى خط احمر ولم يقبل
بالعادة يكون حقل الصورة في الجدول من نوع Image وعند استخدامنا تقنية ADO.net يتم انشاء العمود الذي يحوي الصورة في الداتاعرايد من نوع Image بشكل اتوماتيكي
لكن المشكلة في تقنية Dapper  اعتقد والله اعلم كون البروبرتي للصورة جعلته من نوع object بسبب انه لم يقبل نوع Image لذلك لن يتم عرض الصورة في الداتاغرايد لانها Object وليست Image
فإذا تمكننا من جعل نوع الداتاتايب للبروبرتي  يقبل image اظن ان المشكلة تحل (هذا مجرد رأي ) حاولت ان اجد مثالا فيه صورة في الانترنت لكني لم اوفق 
عل احد الاخوة الاكارم يدلي لنا بحل 
شكرا لك مرة اخرى ... دمت بخير
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد }}}
تم الشكر بواسطة: asemshahen5
#4
نوع بيانات الصوره هو byte[]
كود :
public byte[] PHOTO { get; set; }

اضف شرط عدم وجود صوره
كود :
if (Dgv_Data.CurrentRow.Cells[4].Value != null) {
   byte[] Picture4 = (byte[])(Dgv_Data.CurrentRow.Cells[4].Value);
   MemoryStream ms4 = new MemoryStream(Picture4);
   Pb_PHOTO.Image = Image.FromStream(ms4);
} else { Pb_PHOTO.Image = null; }
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو , asemshahen5
#5
السلام عليكم ورحمة الله وبركاته
الاخ الكريم mir2 شكرا لك على مساهمتك ولكني انا اريد اظهار الصورة في عمود الداتا غرايد وليس مربع الصورة 
اظهار الصورة في مربع الصورة عند النقر على احد صفوف الداتاغرايد لامشكلة فيه
الحمد تم الحل واظهار الصورة بالرغم من عدم تعديل حرف واحد من الكود 
كل مافعلته الغاء ربط الداتاغرايد مع الكلاس ثم اعادة ربطه وتم اظهار الصورة في عمود الصورة (الامر غريب)
شكرا لكل من ساهم وحاول الاجابة 
هذه صورة للداتا غرايد


الملفات المرفقة صورة/صور
   
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد }}}
تم الشكر بواسطة: mir2 , mir2
#6
انا اشرت لك الى نوع بيانات الصوره هو byte[]

الربط الاول اخذ انواع البيانات الاولى ولا يلتفت الى تعديلات الكلاس بعد الربط الاول

لهذا بعد ان الغيت الربط واعدت الربط هنا اخذ الداتاغرايد انواع البيانات من جديد

ما نوع بيانات الصوره بعد ان اعدت الربط ؟

بالنسبه لاظهار الصوره في مربع الصوره فهو سليم من البدايه فقط نبهت الى وضع شرط في حال لم تكن هناك صوره لاحد السجلات

كاضافه لتحسين مظهر
يمكن وضع هذا الكود بعد Dgv_Data.DataSource
كود :
Dgv_Data.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCellsExceptHeaders;
Dgv_Data.RowTemplate.Height = 44;
((DataGridViewImageColumn)Dgv_Data.Columns[4]).ImageLayout = DataGridViewImageCellLayout.Zoom;
((DataGridViewImageColumn)Dgv_Data.Columns[4]).DefaultCellStyle.NullValue = new Bitmap(1, 1);

بامكانك ربط الداتاغرايد بالكلاس Cls_BIANKA اثناء التصميم فتظهر الاعمده تلقائيا وتجري عليها التعديلات التي وضعتها لك لتحسين المظهر بدون الحاجه للكود

اذا اردت الطريقه اخبرني
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو , ابراهيم ايبو , saudi109
#7
السلام عليكم ورحمة الله وبركاته
اخي الكريم  mir2  نوع بيانات الحقل photo في الكلاس ابقيته كما هو object ولم اغيره ولم اغير شيئا سوى الغاء واعادة الربط
اما مظهر الداتاغرايد وتجميلها فهذه من الامور المعروفة لدي 
اسعدتني بمشاركتك دمت بخير
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد }}}
تم الشكر بواسطة: mir2 , mir2 , asemshahen5
#8
وعليكم السلام ورحمة الله وبركاته

انا السعيد بفرصة مشاركة خبير مثلكم

تحياتي لكم
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو , asemshahen5 , saudi109


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] تلوين وحفظ الصورة kasber 2 1,072 28-05-22, 07:44 PM
آخر رد: kasber
Video السلام عليكم ورحمة الله وبركاته . تطبيق صغير عبارة عن فتح كاميرا ويب وحفظ الصورة alaaq3 0 919 30-04-22, 06:41 AM
آخر رد: alaaq3
  هل توجد تقنية البحث عن طريق الصوت محمدعبدالسلام 1 1,063 31-03-22, 09:32 AM
آخر رد: علي بنيان
  [سؤال] عدم ضهور الصورة في صندوق الصور kasber 11 2,691 24-03-22, 02:00 PM
آخر رد: muratsur
  التحديد التلقائي في الصورة anes 3 1,388 22-11-21, 08:23 PM
آخر رد: عدنان الشمري
  [C#.NET] عدم ظهور الصورة في DRAWABLE sniperjawadino 0 1,002 11-08-21, 02:20 AM
آخر رد: sniperjawadino
  طريقة تحجيم الصورة قبل حفظها في قاعدة البيانات jalalaldeen 1 1,357 05-02-21, 10:01 PM
آخر رد: ابراهيم ايبو
Thumbs Up [C#.NET] كيف أحفظ الصورة في مسار وربطه بقاعدة البيانات Sqlserverثم إعادة قرائته مرة اخرى محمد جمعه 1 1,594 29-10-19, 01:16 PM
آخر رد: asemshahen5
  هل من طريقة لعرض الصورة من listView issamsaidd 15 4,546 16-09-19, 09:18 AM
آخر رد: issamsaidd
  تدوير الصورة maha rajab 5 2,382 17-06-19, 10:29 PM
آخر رد: ابراهيم ايبو

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم