الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ربط قائمتين (listbox) في c#.Net

بدأه tarequ_lateef في 2 فبراير 2014 · 1 رد · 1,012 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

في هذا الرابط ستجد الكلاس المستخدم لربط القائمتين

http://www.4shared.com/file/eRS-Ta5jce/LinkLists.html

http://www.4shared.com/file/Wy5K4NI8ce/ConnectToDB.html

 

في بداية الشرح أود أن أوضح :-

أنه يمكن ربط قائمتين أو أكثر حسب العلاقات بين الجداول

·         لربط قائمتين يجب أن تكون العلاقة في قاعدة البيانات بين الجداول (One – Many)

·         لربط أكثر من قائمتين (ثلاثة قوائم) يجب أن تكون العلاقة (Many - Many)

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

·         العلاقة (طرف لمجموعة) (One – Many)

يجب أولا تنزل الملفات في الرابط الآتي:-

بعد تنزيل الملفات سنفتح مشروع جديد في c#.net (new wpf application)

1.      ثم نقوم بإضافة مرجع

·         Right click à add reference

·         نختار الملفين

2.      نقوم إضافة قاعدة البيانات ويمكن تنزيلها من الرابط الآتي

http://www.4shared.com/file/RN9moKmcce/Company.html?

ثم نضغط على في واجهة  C#.NET

·         Right click à add existing item

3.      نستخدم أولا الملفين الذين تم إدراجهما

using LinkLists;

using ConnectToDB;

 

4.      نقوم بتعريف المتغير Employees  من الكلاس ListsToLink والموجود في LinkLists

ListsToLink Employees = new ListsToLink("Departments", "DepartID", "Department", "Employees", "EmployeeName");

5.      والبيانات فيه على التوالي هي

a.       الجدول الرئيس (Parent table in the relationship) وفي حالتنا جدول الإدارات

b.      الحقل الرئيسي من الجدول الرئيسي (primary key field in the parent table) في حالتنا حقل رقم الإدارة

c.       حقل البيانات من الجدول الرئيسي (data field in the parent table) في حالتنا حقل اسم الإدارة

d.      مثلا : 1- إدارة المشتريات 2- إدارة المبيعات وهكذا

e.      الجدول الفرعي (child table in the relationship) في حالتنا جدول الموظفين

f.        جدول البيانات الفرعية (data field in the child table ) اسماء الموظفين

g.       مثلا : محمد خليل وابراهيم مصطفى في إدارة المشتريات وبيومي مرعي وعزمي عبدالسلام في إدارة المبيعات

6.      نقوم إدراج الأدوات التالية في النافذة

<Label Height="30" HorizontalAlignment="Left" Margin="30,15,0,0" Name="lblLocation" VerticalAlignment="Top" Width="120" Content="Location" />

        <ComboBox Height="30" HorizontalAlignment="Left" Margin="30,50,0,0" Name="cmbLocation" VerticalAlignment="Top" Width="120" SelectionChanged="cmbLocation_SelectionChanged" />

        <Label Height="30" HorizontalAlignment="Left" Margin="160,15,0,0" Name="lblEmp" VerticalAlignment="Top" Width="120" Content="Employees" />

        <ComboBox Height="30" HorizontalAlignment="Right" Margin="0,50,223,0" Name="cmbEmp" VerticalAlignment="Top" Width="120" />

نضغط مرتين على النافذة ثم نفتح نافذة الكود ونكتب في (Window_Loaded) Method

//تحديد مكان وإسم قاعدة البيانات على الجهاز الخاص بك

//يجب مراعاة فرق المكان من جهازي لجهازك

            string dbName = @"C:\Users\Tarequ Lateef\Documents\Company.accdb";

            DataBase.DBName = dbName;

            //ملء القائمة الأولى

            string[] depts = Employees.PrimaryList;

            for (int item = 0; item < depts.Length; item++)

            {

                cmbLocation.Items.Add(depts[item]);

            }

وبعد ذلك عند تغيير الاختيار من القائمة الأولى وهي cmbLocation

نضغط على القائمة الأولى (combo box) نكتب في (cmbLocation_SelectionChanged) Method

 

أرجو أن تعم الفائدة على الجميع وأن ينتفع بها لجميع ومن أراد التواصل أو الاستفهام عن الغامض في الكلاس أو الشرح يمكنه التواصل على الرقم التالي : 01099356348

أو عبر الميل : tarequlateef@yaho.com

أخوكم : مهندس/ طارق عبداللطيف ... مصر 

تم تعديل هذه المشاركة بواسطة tarequ_lateef في 2 فبراير 2014 في 11:54

#2

هذه أول مشاركة لي في هذا المنتدى أو في أي منتدى على الإطلاق لذا أرجو التقييم 

والآراء وذلك للتحسين والتجويد فيما يلي

مواضيع مشابهة