منتديات روكشا     َولَوْلَا إِذْ دَخَلْتَ جَنَّتَكَ قُلْتَ مَا شَاءَ اللَّهُ لَا قُوَّةَ إِلَّا بِاللَّه

الرئيسية |  التسجيل  |  مركز رفع الملفات  |  الاتصال بنا  

 



العودة   منتديات روكشا > المنتدي التخصصي > قسم التصاميم والبرمجة والجرافيكس والميديا > انشاء وتصميم وبرمجة البرامج

الملاحظات

انشاء وتصميم وبرمجة البرامج برنامج الوورد اكسس اكسيل بوربوينت فيجوال بيسك برامج محاسبة برامج ادارة وتنظيم حسابات تنسيق الملفات

Like Tree1اعجابات
  • 1 موضوع بواسطة الفارس

إضافة رد
 
LinkBack أدوات الموضوع انواع عرض الموضوع
  #1  
قديم 03-23-2019, 12:37 AM

الصورة الرمزية الفارس

الفارس

.:: عضـو متميز ::.

 
تاريخ التسجيل: Feb 2019
الدولة: مصر
المشاركات: 837
معدل تقييم المستوى: 10
الفارس المعروف لدى الجميع بالتميز العالىالفارس المعروف لدى الجميع بالتميز العالىالفارس المعروف لدى الجميع بالتميز العالىالفارس المعروف لدى الجميع بالتميز العالىالفارس المعروف لدى الجميع بالتميز العالىالفارس المعروف لدى الجميع بالتميز العالى
الفارس غير متواجد حالياً
جديد مثال للتعامل مع الجداول المرتبطة - عن طريق الكلاسات

 






السلام عليكم و رحمة الله و بركاته


مثال للتعامل مع الجداول المرتبطة - عن طريق الكلاسات

ابدأ معكم بمراجعة بسيطة بطرق تعاملنا مع الجداول وفق تقنية ADO.Net و اهم العمليات التي نحتاجها بشكل متكرر اثناء عملنا مع اي جدول , لا يخفى على الجميع و الكل يعرف اننا دائما و ابداً نحن امام الحالات التقليدية (الاضافة و التعديل و الحذف) كحالات رئيسة ترافق العمل مع اي جدول بالاضافة للحالات الاخرى حسب الحاجة من عمليات البحث او تجميع البيانات وفق اي نوع من الاستعلامات تفرضه علينا الحاجة .
و اعتدنا دائماً على التعامل مع الجمل التقليدية التي توافق كل حالة و على اعادة تكرارها مع كل مشروع .
و الذي يختلف فقط هو عدد الحقول و اسمائها و انواع بيانات الحقول فيها .
و هذا التكرار اشبه بعملية النسخ و اللصق و تغير ما يلزم وفق المعطيات التي يحملها المشروع الجديد



هذه المقدمة البسيطة ضرورية لنتجاوز التكرار او بالمختصر لنحول عملية النسخ و اللصق المعتادة الى طريقة عملية تجعلنا نستفيد من الثوابت في جمل الادخال و الاضافة و التعديل و البحث و غيرها من الجمل و نحولها الى دوال منفصلة نحتاج فيها فقط ما يتغير مع كل مشروع جديد , و بالتالي نفصلها في فئة خاصة بها بعيداً عن واجهة البرنامج (مثل مكتبة او اطار عمل) و عند حاجتنا لها نستدعي المكتبة و نغير فقط ما يسمح لنا بتغيره و بالتالي وفرنا على انفسنا عناء اعادة كتابة الجمل كل مرة.




و من جهة اخرى و هي الباب الثاني في الموضوع اننا نتعامل مع جدول عبارة عن كائن منفصل يحتوي على حقول محددة , و هذه الحقول هي التي ستقوم عليها العمليات السابقة , بالاضافة لاي عمليات اخرى قد تحتاجها على هذا الكائن لذا ارى انه من الافضل ان تكون هذه العمليات الخاصة بهذا الكائن حكراً عليه و ان رايت ان اكثر من كائن يمكن ان يتشارك في هذه العملية يمكنك جعلها في المكتبة الرئيسية كدالة عامة يمكن لاي كائن ان يستدعيها و يطبقها و فق خصوصيته.
و على هذا فان عمليات الاضافة و التعديل و الحذف ممكن ان نجعل لها اكثر من نسخة في المكتبة نسخة خاصة و نسخة عامة
النسخة الخاصة يعاد تطبيقها في اي كائن يستدعيها و يتم تغير المعطيات وفق حاجتنا
اما النسخة العامة فيمكن تمريرها بشكل مباشر لاي كائن دون الحاجة للتغيير فيها




اتمنى ان يكون كلامي مفهوم الى هذه اللحظة و ان شاء الله سيتضح مع التطبيق الذي سنبدئه و نناقش تطويره



في البداية ساعرض جملة الادخال المعروفة لديكم لنرى ما هي الثوابت فيها , ووفق شكلها القياسي التالي




PHP كود :
كود PHP:

INSERT INTO table_name 
(column1,column2,column3,...)
VALUES (value1,value2,value3,...) 
كما هو واضح المتغيرات الجدول و الاعمدة و قيم هذه الاعمدة و باقي النص ثابت
و على هذا لو كان لدي مصفوفة من الاعمدة و القيم تمرر بدل هذه المتغيرات اكون قد ارتحت من اعادة كتابة نفس الجملة




هذا من طرف الجملة , اما من طرف اطار العمل سيكون لدي كائن يقوم بتنفيذ هذه الجملة و هذا الكائن يحتاج الى اتصال و يحتاج الجملة السابقة و يحتاج الى بارمترات موافقة لعدد الحقول و قيم لهذه البارمترات و في النهاية سيقوم بالتنفيذ بعد اكتفائه بالمعلوممات المطلوبة.
الان لننظر الى هذا الكود الخاص بهذا الكائن و لنكتشف ما يمكننا الاستفادة منه
كائن ينفذ عملية ادخال سجل جديد في جدول

PHP كود :
كود PHP:

   
Private Sub Insert_SomeData()
        
Dim Insert_Statement As String "INSERT INTO table_name (column1,column2,column3) VALUES (@column1, @column2, @column3)"
        
Using Cmd As New SqlClient.SqlCommand(Insert_StatementCon)
            
Cmd.Parameters.AddWithValue("@column1"Txt_column1.Text)
            
Cmd.Parameters.AddWithValue("@column2"Txt_column2.Text)
            
Cmd.Parameters.AddWithValue("@column3"Txt_column3.Text)
            
Con.Open()
            
Cmd.ExecuteNonQuery()
            
Con.Close()
        
End Using
    End Sub 
بعد التمعن في الكود السابق سنرى ان اغلبها ثوابت تتكرر كل مرة باستثناء ما اشرنا اليه سابقا من اسم الجدول و قائمة الحقول و القيم الموافقة لتلك الحقول و التي يشترك فيها ايضاً الكائن (Command) و حتى كائن الاتصال Con يعتبر ثابت ايضاً لاننا نعرف هذا الكائن غالباً على مستوى المشروع لذا سيكون الوصول اليه متاح من كل انحاء المشروع




اذاً ما علينا في هذه الحالة ان نمرر اسم الجدول كبارميتر لهذا الاجراء و كذلك نمرر اسماء الحقول و قيمها ايضاً كبارميتر عبر مصفوفة و نكون قد تحصلنا على اجراء ادخال عام يستطيع الادخال في اي جدول بمجرد استدعائه و تمرير وسائطه المطلوبة




و لو دققنا اكثر في الاجراء السابق الخاص بالاضافة سنرى انه ينفذ عملية في داخله و هي ExecuteNonQuery و التي بدورها تعيد قيمة رقمية بعد تنفيذها فهي تعيد اما 0 او 1 نجاح او فشل التنفيذ و عليه يمكننا استغلال الرقم العائد و عرض رسالة في حال نجح او فشل , و عليه فاننه يمكننا تحويل الاجراء السابق الى دالة تعيد الرسالة .



و بمنطق اعمق , بما انني اضيف سجل جديد و فق الدالة السابقة فالاولى ان اتحصل على رقم السجل المضاف الى الجدول لاستفيد منه و بناءً على ذلك اريد ان اجري عملية اضافية بعد الادخال و هي تحصيل رقم السجل و فق الكود التالي





PHP كود :
كود PHP:
           Cmd.CommandText "Select @@IDENTITY"
            
Resuilt CType(Cmd.ExecuteScalar(), Integer
هكذا اصبحت الدالة عملية اكثر تقوم بعملية ادخال و من بعدها تعيد رقم السجل المضاف







ابن الوليد معجب بهذا.
رد مع اقتباس
قديم 03-23-2019, 01:33 PM   #2

.:: ادارة المنتدي ::.

الصورة الرمزية ابن الوليد

تاريخ التسجيل: Nov 2018
الدولة: مصر
المشاركات: 1,614
معدل تقييم المستوى: 10
ابن الوليد has much to be proud ofابن الوليد has much to be proud ofابن الوليد has much to be proud ofابن الوليد has much to be proud ofابن الوليد has much to be proud ofابن الوليد has much to be proud ofابن الوليد has much to be proud ofابن الوليد has much to be proud of
إرسال رسالة عبر MSN إلى ابن الوليد إرسال رسالة عبر Yahoo إلى ابن الوليد إرسال رسالة عبر Skype إلى ابن الوليد
افتراضي

الله ينور دربك بالعلم والمعرفة
مجهود عالى تشكر عليه

ابن الوليد غير متواجد حالياً  

رد مع اقتباس
إضافة رد

مواقع النشر (المفضلة)


الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 
أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة


المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
شرح عرض الصور فى مجلد محدد عن طريق الاكسس الفارس انشاء وتصميم وبرمجة البرامج 1 02-08-2019 11:43 PM
برنامج الأخطاء الشائعة العلاقات بين الجداول مهرة النجدية انشاء وتصميم وبرمجة البرامج 0 02-06-2019 12:37 AM
كتاب الاكسس وتعامل بيانات الجداول والاضافات الفارس انشاء وتصميم وبرمجة البرامج 0 02-05-2019 07:33 AM
كتاب مثال إضافة وعرض وتعديل وبحث في نموذج واحد ابن الوليد انشاء وتصميم وبرمجة البرامج 0 12-06-2018 11:45 AM
للتعامل مع ملفات ب د ف سعره 999$ Flip PDF Corporate Edition 2.4.9.26 + Crack ابن الوليد برامج الحاسب 0 11-22-2018 09:42 AM

 

RSS RSS 2.0 XML MAP HTML

الساعة الآن 03:42 AM

نبذة عن المنتدى

روابط مفيدة

إعلانات نصية

روابط الموقع

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



Powered by vBulletin® Copyright ©2000 - 2019,