![]() |
|
[VB.NET] ازرار التنقل و الاضافة و الحفظ و الحذف و التعديل في entity framework باستخدام visual - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183) +--- الموضوع : [VB.NET] ازرار التنقل و الاضافة و الحفظ و الحذف و التعديل في entity framework باستخدام visual (/showthread.php?tid=36773) |
ازرار التنقل و الاضافة و الحفظ و الحذف و التعديل في entity framework باستخدام visual - vb 2010 + sql server 2008 - 25-10-20 السلام عليكم و رحمة الله و بركاته بحثت فى الانترنت كثيرا و لم اجد ازرار التنقل و الاضافة و الحفظ و الحذف و التعديل في entity framework باستخدام visual basic انما وجدتها بال سى شارب الذي لا افقه فيه شيء فلو سمحتم اريد اكواد ازرار التنقل ( الاول و الاخير و التالى و السابق ) و الحذف و الاضافة و الحفظ و التعديل في entity framework باستخدام visual basic RE: ازرار التنقل و الاضافة و الحفظ و الحذف و التعديل في entity framework باستخدام visual - kiki - 25-10-20 وعليكم السلام ورحمة الله وبركاته يمكنك الاطلاع هنا ستجد كل ما تريده من الاضافة والتعديل والحذف والبحث مع شرح من البداية لاستخدام entity framework القائمة من 3 فيديوهات فقط https://www.youtube.com/playlist?list=PLYNBy6sF0bV4M0E6qNiT5DPtblC3nuaWo RE: ازرار التنقل و الاضافة و الحفظ و الحذف و التعديل في entity framework باستخدام visual - vb 2010 + sql server 2008 - 26-10-20 شكرا لكن لا يوجد ازرار التنقل بين السجلات كيف اعملها RE: ازرار التنقل و الاضافة و الحفظ و الحذف و التعديل في entity framework باستخدام visual - Anas Mahmoud - 28-10-20 السلام عليكم ورحمة الله وبركاته اخي الكريم يجب ان تعلم كيف يعمل Entity Framework وان تعلم ان الطريقة الامثل للتعامل معه هي بمجاراته فيما يريد هو وليس ما نريد نحن تقديم هام قبل الاجابة Entity Framework مصمم ليمكنك من التعامل مع البيانات على شكل كائنات Objects وهو مفهوم ال ORM بحيث يكون الجدول هو عبارة عن DbSet قابل للعد ، والحقل الواحد هو كائن من نوع البيانات الذي قمت بتعريفه Entity ، يمكنك التعامل معه بشكل مباشر بالكود وبالتالي اذا فمت بتصميم فئاتك بشكل سليم فيمكنك الوصول الى ما تريد باسط الطرق لا اعلم شكل هيكل بياناتك ولكني للمثال فقط سافترض ان لديك Entity واحدة ( جدول واحد ان صح التعبير ) اسمها Book وبها الخصائص ( الاعمدة ) التالية : كود : Public Class Bookوان الكلاس الذي يرث من DBContext اسمه libraryContext كود : Imports System.Data.Entityطيب جميل الان بعد ان قمنا ببناء الهيكل ، تحتاج طبعا كما تعلم لاضافة Migration لبناء قاعدة البيانات فعلا ، جميل جدا الان يجب ان تعلم ان التعامل مع قاعدة البيانات من خلال Entity Framework يتم من خلال الكلاس الذي يرث من DBContext الذي قمنا بتعريفه ، وهو في حالتنا هنا كلاس libraryContext ، ويجب ان تعلم ايضا ان DBContext ليس مصمما لان تظل نسخة منه موجودة طول عمل البرنامج ، انما الطريقة الصحيحة هو عمل نسخة منه عند الحاجة للتعامل مع قاعدة البيانات ومن ثم رميها عند الانتهاء من الامر باستخدام Using : كود : Using db As New libraryContextالان يمكنك التعامل مع db.Books على انها جدول الكتب ، تضيف او تمسح او تعدل ما تريده ثم تستدعي db.SaveChanges الجميل هنا ان db.Books هي بكل بساطة IEnumerable(of Book) وهذا يعني انه الان تستطيع استخدام تقنية Linq عليه ! وهو اساس ما سنقوم به لاحقا الاجابة : الان الطريقة الابسط لتحقيق ما تريد هو عن طريق تعريف متغير عام من نوع Book نسميه CurrentBook ، نضع به السجل الحالي ( ان صح التعبير ) كود : Dim CurrentBook As Bookالان لايجاد السجل التالي ، نحن نريد اول سجل يكون قيمه ID اكبر من الحالي ، لعمل ذلك نستخدم LINQ كود : Sub NextBook()لاحظ الترتيب التصاعدي Ascending وكذلك FirstOrDefault التي تعيد اول عنصر من الاستعلام اذا كان يحتوي على عناصر او Nothing اذا كان فارغا وكذلك الامر للذهاب للسجل السابق ، نريد اخر سجل له ID اصغر من الحالي ، نفس الكود السابق ولكن الترتيب تنازلي وكذلك الشرط اصغر من : كود : Sub PreviousBook()للذهاب لاول سجل نحتاج لترتيب الكل تصاعدي ثم اخذ اول عنصر : كود : Sub FirstBook()للذهاب لاخر سجل نحتاج للترتيب تنازلي ثم اخذ اول عنصر : كود : Sub LastBook()الى هنا اجبت على سؤالك ، لتكملة المثال ، اضف ازرار للسابق والتالي والاول والاخير ، وكذلك للتعديل والحدف والاضافة ، وكذلك اضف خانات TextBox و DateTimePicker و NumericUpDown مناسبة ، وعدل اسمائها لتصبح ذات دلالة الان سنعرف اجراء لملء الخانات من السجل الحالي : كود : Sub Populate()في حدث Load نريد الذهاب الى اول سجل : كود : Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Loadالان احداث الضغط على الازرار ، زر التالي : كود : Private Sub btnNext_Click(sender As Object, e As EventArgs) Handles btnNext.Clickزر السابق : كود : Private Sub btnPrev_Click(sender As Object, e As EventArgs) Handles btnPrev.Clickزر الاول : كود : Private Sub btnFirst_Click(sender As Object, e As EventArgs) Handles btnFirst.Clickزر الاخير : كود : Private Sub btnLast_Click(sender As Object, e As EventArgs) Handles btnLast.Clickالان ازرار الحدف والاضافة والتعديل : بنفس الطريقة لاضافة سجل جديد نقوم بانشاء كائن جديد من Book ونملئه بالبيانات ومن ثم نضيفه باستخدام DB.Books.Add ثم نجعله هو السجل الحالي ونعيد ملء الخانات من جديد : كود : Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Clickلتعديل البيانات نقوم بعمل Attach للسجل الحالي اولا ، وهو امر مهم حتى يتمكن من التعرف عليه ضمن السجلات الموجودة بالفعل ، ومن ثم نجري التعديلات المطلوبة ، ثم نعيد ملء الخانات مرة اخرى : كود : Private Sub btnUpdate_Click(sender As Object, e As EventArgs) Handles btnUpdate.Clickلحدف السجل الحالي نقوم ايضا بعمل Attach اولا ثم نقوم بحذفه باستخدام db.Books.Remove ثم ننتقل للسجل التالي : كود : Private Sub btnDelete_Click(sender As Object, e As EventArgs) Handles btnDelete.Clickاتمنى ان تكون الفكرة وصلت خلف هذا المثال ، كان هذا باختصار شديد رغم الاطالة صدقني اذا اردت تفاصيل اكثر عن جزئية ما تفضلالسلام عليكم ورحمة الله |