RE: مشروع للتعامل مع قاعدة بيانات DataGridView باللغتين VB و#C - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم امثلة ومشاريع VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=188) +--- الموضوع : RE: مشروع للتعامل مع قاعدة بيانات DataGridView باللغتين VB و#C (/showthread.php?tid=13867) الصفحات:
1
2
|
RE: مشروع للتعامل مع قاعدة بيانات DataGridView باللغتين VB و#C - مهموم - 19-11-15 السلام عليكم ورحمة الله مشروع للتعامل مع قاعدة بيانات بها ثلاث جداول بينهم علاقات، مع إمكانية: الإضافة التعديل الحذف البحث الخطوة الأولى: عمل قاعدة بيانات Microsoft Access بإسم Database1.accdb ونحفظه في مجلد المستندات وبه الجداول والأعمدة التالية: جدول الموظفين Employees والأعمده هي: رقم الموظف Emp_ID نوع ترقيم تلقائي ومفتاح أساسي إسم الموظف Emp_Name نوع نص رقم الفرع Brn_ID نوع رقم رقم القسم Dpt_ID نوع رقم جدول الفروع Branches والأعمده هي: رقم الفرع Brn_ID نوع ترقيم تلقائي ومفتاح أساسي إسم الفرع Brn_Name نوع نص جدول الأقسام Departments والأعمده هي: رقم القسم Dpt_ID نوع ترقيم تلقائي ومفتاح أساسي إسم القسم Dpt_Name نوع نص إنشاء علاقات بين الجداول الثلاث كالتالي: Employees.Brn_ID = Branches.Brn_ID Employees.Dpt_ID = Departments.Dpt_ID ونحن داخل Microsoft Access نقوم بإضافة بعض البيانات في جدول الفروع Branches وجدول الأقسام Departments الخطوة الثانية: عمل مشروع Visual Basic جديد إضافة قاعدة البيانات Database1.accdb للمشروع: من القائمة Project نختار Add Existing Item ستفتح نافذة تحديد الملفات ولنستطيع مشاهدة ملفات قاعدة البيانات لابد من تغيير نوع عرض الملفات إلى Data Files، ثم نبحث عن الملف ونحدده ونضغط Add، وبما أن الملف الذي اخترناه هو قاعدة بيانات فستفتح لنا نافذة معالج إعداد مصدر البيانات Data Source Configuration Wizard، نحدد من النماذج المعروضة (وفي الغالب هو نموذج واحد Dataset مع ال Access) النموذج Dataset ونضغط التالي Next، سننتقل للصفحة التالة للمعالج وهي تحديد كائنات من قاعدة البيانات وغالباً سنؤشر على الجداول فقط Tables والتي تشمل الثلاث جداول Branches وDepartments وEmployees، وسنترك الإسم الإفتراضي Database1DataSet كما هو ثم نضغط إنهاء Finish. سنجد أنه تم إضافة الملفات التالية للمشروع: app.config ويحتوى على معلومات عن الإتصال قاعدة البيانات. Database1.accdb وهو ملف قاعدة البيانات. Database1DataSet.xsd وهو يحتوى على مخطط للجداول مع العلاقات التي بينهم (بإمكانك فتحه بالنقر مرتين عليه لمشاهدت ما فيه من باب العلم) نأتي للنموذج Form1: نقوم بإضافة الأداة DataGridView1 ونقوم بربطها بالجداول كالتالي: نحدد الأداة DataGridView1 ثم نضغط على السهم الصغير الموجود في ركن الأداة DataGridView1 وستفتح لنا Choose Data Source ونقوم بفتح الشجرة Other Data Sources حتى نشاهد الثلاث جدوال السابقة ونختار الجدول Employees وسوف نشاهد أن أعمدة الجدول ظهرت في أداة DataGridView1، وسنجد أن العمودين Brn_ID وDpt_ID ظهرا على أساس نوع TextBox وسنقوم بتغييرهم إلى نوع ComboBox في الخطوة التالية. لتغيير نوع عمود الفرع Brn_ID من نوع TextBox إلى نوع ComboBox بحيث يحتوي على أسماء الفروع من الجدول Branches نقوم بالتالي: نحدد الأداة DataGridView1 ثم نضغط على السهم الصغير الموجود في ركن الأداة DataGridView1 ونضغط على تعديل الأعمدة Edit Columns، من نافذة تعديل الأعمدة نحدد العمود Brn_ID فتظهر خصائصه، نذهب للخاصية Column Type ونغيره من DataGridViewTextBoxColumn إلى DataGridViewComboBoxColumn فتظهر لنا بعض الخصائص الإضافية التي لم تكن موجودة قبل هذا التغيير، نذهب للخاصية DataSource ونفتح بالترتيب Other Data Sources ثم Project Data Sources ثم Database1DataSet وستظهر فيها الثلاث جداول ونختار جدول الفروع Branches، نذهب للخاصية DisplayMember ونختار منها Brn_Name، نذهب للخاصية ValueMember ونختار منها Brn_ID، نذهب للخاصية HeaderText ونغيره إلى Branch. لتغيير نوع عمود القسم Dpt_ID من نوع TextBox إلى نوع ComboBox بحيث يحتوي على أسماء الأقسام من الجدول Departments نقوم بالتالي: نحدد الأداة DataGridView1 ثم نضغط على السهم الصغير الموجود في ركن الأداة DataGridView1 ونضغط على تعديل الأعمدة Edit Columns، من نافذة تعديل الأعمدة نحدد العمود Dpt_ID فتظهر خصائصه، نذهب للخاصية Column Type ونغيره من DataGridViewTextBoxColumn إلى DataGridViewComboBoxColumn فتظهر لنا بعض الخصائص الإضافية التي لم تكن موجودة قبل هذا التغيير، نذهب للخاصية DataSource ونفتح بالترتيب Other Data Sources ثم Project Data Sources ثم Database1DataSet وستظهر فيها الثلاث جداول ونختار جدول الأقسام Departments، نذهب للخاصية DisplayMember ونختار منها Dpt_Name، نذهب للخاصية ValueMember ونختار منها Dpt_ID، نذهب للخاصية HeaderText ونغيره إلى Department. ويمكنك تغيير اسماء الأعمدة التي تظهر في الأداة DataGridView1 عن طريق الخاصية HeaderText لكل عمود. الأن لو فتحنا نافذة الكود الخاص بالنموذج Form1 فسنجد أن المعالج أضاف ثلاث أسطر في حدث تحميل النموذج Form1_Load وهي أسطر قراءة الجداول الثلاث VB
PHP كود : Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load #C
PHP كود : private void Form1_Load(object sender, EventArgs e) { دعونا نقوم الآن بتجربة نجاح الربط فقط، وذلك بتشغيل المشروع ومشاهدة الأعمدة Branches وDepartments وهي تحتوي على اسماء كل منهم، وذلك للإطمئنان على سير العمل بشكل صحيح، ولكن حتى الآن لن يتم حفظ أي بيانات يتم إضافتها في الأداة DataGridView1، ونقوم بعمل كود الحفظ (وهو سطر واحد فقط) في الخطوة التالية. تحديث قاعدة البيانات: إن اعتماء كل العمليات التي يتم إجراءها على الأداة DataGridView1 من إضافة وتعديل وحذف تتم بهذا السطر فقط (مع ملاحظة إسم الجدول Employees والأمر Update) VB
PHP كود : Me.EmployeesTableAdapter.Update(Me.Database1DataSet.Employees) #C
PHP كود : this.employeesTableAdapter.Update(this.database1DataSet.Employees); ولك الخيار بين أن تضعه في زر Button بإسم [تحديث] أو أن تضعه في حدث إغلاق النموذج Form1_FormClosing وسأفترض أنك اخترت حدث إغلاق النموذج Form1_FormClosing نأتي للخطوة الأخير وهي طريقة البحث: نضيف أداة TextBox1 لكتابة الإسم المراد البحث عنه وButton1 لتنفيذ أمر البحث وعرض النتائج وButton2 لإعادة الوضع كما كان قبل البحث أو ما يسمى Reset. الأسلوب الحديث في البحث بشكل عام هو استخدام تقنية Linq الخاصة من Microsoft. هناك عدة رغبات في مسألة البحث عن نصوص وهي أربع حالات، وكانت في السابق تستخدم % مع الأمر Like في جمل Sql كالتالي: إذا كان الجزء المراد البحث عنه في بداية المعلومات كانت توضع العلامة % قبل مع الأمر LIKE. إذا كانت الجزء المراد البحث عنه في وسط المعلومات كانت توضع العلامة % قبل وبعد مع الأمر LIKE. إذا كانت الجزء المراد البحث عنه في آخر المعلومات كانت توضع العلامة % بعد مع الأمر LIKE. إذا كانت المراد البحث عنه تطابق تام مع المعلومات كانت تستخدم العلامة = بدلا من الأمر LIKE وبدون العلامة %. ولكن طريقة البحث مع تقنية Linq مختلفة وسهلة جداً وكأنك تبحث في مغير نصي كالتالي: إذا كان الجزء المراد البحث عنه في بداية المعلومات نستخدم الأمر StartsWith. إذا كانت الجزء المراد البحث عنه في وسط المعلومات نستخدم Contains. إذا كانت الجزء المراد البحث عنه في آخر المعلومات نستخدم الأمر EndsWith. إذا كانت المراد البحث عنه تطابق تام مع المعلومات نستخدم الأمر Equals. ويمكن استخدام العلامة = في حالة المراد التطابق التام. نأتي للمشروع، سنفترض أن الرغبة في أسلوب البحث عن المطلوب يكون البحث عن الأسماء التي تحتوي نصاً معيناً، فسنكتب هذا الكود في الزر Button1 VB
PHP كود : Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click #C
PHP كود : private void button1_Click(object sender, EventArgs e) { وبالنسبة لإعادة إظهاء جميع الأسماء كما كانت قبل البحث نكتب هذا الكود في الزر Button2 VB
PHP كود : Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click #C
PHP كود : private void button2_Click(object sender, EventArgs e) { ويمكن إجراء بحث آخر دون الحاجة لإعادة إظهار جميع الأسماء الناتجة من بحث سابق. ملاحظة: إن التعديل في البيانات الظاهرة نتيجة البحث سوف تتم بشكل طبيعي دون التأثير على بقية بيانات قاعدة البيانات الغير ظاهرة. وهذا كامل كود النموذج Form1 VB
PHP كود : Public Class Form1 #C
PHP كود : public partial class Form1 : Form إختفاء البيانات: قد يلاحظ البعض أن أي تعديل في المشروع ينتج عنه اختفاء ما تم إضافته من بيانات في قاعدة البيانات قبل التعديل في المشروع، ولتعطيل هذا الإختفاء نقوم بالتالي: نحدد من ملفات المشروع ملف قاعدة البيانات Database1.accdb فتظهر لنا خصائص خاصة بالملف، نذهب للخاصية Copy to Ouput Directory ونختار Copy if newer. يمكن تطبيق هذا المشروع مع قاعدة بيانات SqlServer والنتيجة واحدة، ما عدا فيما يخص ملف قاعدة البينات في ملفات المشروع، لأنه لن يكون هناك ملف قاعدة بيانات ضمن ملفات المشروع. في المرفقات مشروع تم التطبيق عليه كل الخطوات السابقة أثناء الكتابة للتأكد من عدم نسيان أي خطوة. إن كانت الإدارة ترى أن هذه المشاركة فيها من الفائدة ما تستحق أن توضع في موضوع مستقل مع التعديل بما تراه مناسباً فلها ذلك مع شكري وتقديري. RE: مشروع للتعامل مع قاعدة بيانات DataGridView - abulayth - 19-11-15 السلام عليكم تم تثبيت الموضوع للاهمية شكرا لك يعطيك العافية RE: مشروع للتعامل مع قاعدة بيانات DataGridView - مهموم - 19-11-15 السلام عليكم ورحمة الله أخي أبو ليث أشكر لكم ثقتكم. RE: RE: مشروع للتعامل مع قاعدة بيانات DataGridView باللغتين VB و#C - مهموم - 19-11-15 السلام عليكم ورحمة الله أخي الأستاذ خضر أشكر لكم تشريفكم لي. RE: RE: مشروع للتعامل مع قاعدة بيانات DataGridView باللغتين VB و#C - boudyonline - 19-11-15 اخي الفاضل مهموم ( أزال الله عنك هم الدنيا والآخرة ) مجهود رائع لي استفسار ... لا استطيع فتح ملف المشروع .... علما بأني استخدم Visual Studio 2008 فهل هذا هو السبب ؟ RE: RE: مشروع للتعامل مع قاعدة بيانات DataGridView باللغتين VB و#C - jassim316 - 20-12-15 يوجد خطأ عند عمل ببلش للمشروع RE: RE: مشروع للتعامل مع قاعدة بيانات DataGridView باللغتين VB و#C - ahmedabdelaliem - 17-02-16 مشكور اخي يعطيك العافية RE: RE: مشروع للتعامل مع قاعدة بيانات DataGridView باللغتين VB و#C - dubai.eig - 17-03-16 شكرا بارك الله فيك فقط يوجد خطأ عند عمل ببلش للمشروع RE: RE: مشروع للتعامل مع قاعدة بيانات DataGridView باللغتين VB و#C - sendbad100 - 05-02-17 عمل جميل ورائع الله يجزيك خير RE: RE: مشروع للتعامل مع قاعدة بيانات DataGridView باللغتين VB و#C - Amir_Alzubidy - 10-02-17 بارك الله فيك و اسأل الله ان يفرج همك شكرا جزيلا |