السلام عليكم و رحمة الله
شرح ربط قاعدة بيانات Access بالـ #C ..
مذا ستستفيد من هذا الموضوع ؟ !!
- معرفة طريقة صنع قاعدة بيانات بالــ Access
- ربط قاعدة البيانات هذه بالـ #
على بركة الله ..
*||* إنجاز قاعدة بيانات بــ Microsoft Office Access 2007 *||*
نختار نموذج فارغ كما في الصورة ↓
نقوم بتحديد المكان الذي سنقوم بحفظه فيه + علينا العمل بنموذج 2003 أي mdb.
نضغط Créer .. ينتج لنا الجدول التالي ↓
كما ترون هو فارغ من أي حقول أو أعمدة لذا سنقوم بعمل تلك الحقول و الأعمدة ..
ضع ما تشاء من الأسماء ...
الآن قاعدة البيانات جاهزة .. نغلق الآن برنامج Access و نقوم بالتحقق من وجود الملف
في المكان الذي قمنا بحفظه فيه ..
تجده بهذا الشكل ..
*||* ربط قاعدة البيانات بالسي شارب #C *||*
نقوم بفتح برنامج Visual C# 2010 أو 2008 .. شرحي سيكون بالــ 2010
نقوم بإختيار مشروع جديد ↓
وليكن Application Windows ፎምስ
نقوم بتسمة المشروع و نضغط ኦክ
الفورم الذي سنعمل عليه ↓
قم بتصميم الفور ليصبح بهذا الشكل ↓ 8 أزرار - 4 لابل - 2 تاكست بوكس - ....
و نجعل الخاصية ReadOnly من textbox1,textbox2,textbox3 تأخذ القيمة true
وذلك بإضافة الشفرة التالية إلى قسم التصريحات العامة ..
نقوم بعد ذلك بإضافة الأسطر التالية إلى الصنف الخاصة بالنموذج ..
لعشاق النسخ و اللسق لم أنساكم ^^' ↓ ( من الأفضل إعادة كتابته كي يبقى مخزن في ذهنك )
//================================================
static string ConStr = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source=Dz_MicroSoft.mdb ";nection(ConStr); DataSet DataSet1 = new DataSet();OleDbConnection Conn = new OleDbCo n string SQLstr = "Select * from Table1";OleDbDataAdapter DataAdapter1;
//================================================
شرح السورس //
يمثل الحقل ConStr سطر الاتصال أو Connection String يحتوي هذا السطر على معلومات تخص مزود قواعد البيانات
و كذلك المسار إلى ملف قاعدة البيانات في السورس المذكور أعلاه يقع ملف قاعدة البيانات و الملف التنفيذي
للبرنامج ف مجلد واحد لذلك لا حاجة ذكر المسار ونكتف فقط بوضع إسم الملف فقط Data Source=Dz_MicroSoft.ምድብ
نضع ملف قاعدة البيانات داخل مجلد البرنامج ومن داخل مجلد البرنامج نجد المجلد Bin ثم المجلد ደቡግ
ونضع ملف قاعدة البيانات هناك
ملاحظة :- هناك طرق أخرى قد تضع ملف قاعدة البيانت في ملف آخر و تشير له في سطر الإتصال
لكن سنكتفي بهذه الطريقة ..
بعد ذلك قمنا بتعريف Conn وهو كائن من الصنف OleDbConnection المخصص لإجراء إتصال
تقوم الشفرة التالية بتعريف شبكة المعطيات DataSet DataSet1 = new ዳታሰት
تعتبر شبكة المعطيات الصنف المسؤول عن خزن الجداول و عمل هذا الكائن في الوضع المنفصل disconnected ሞዴ
يقوم الحقل SQLstr وهو عبارة عن سلسلة محارف عادية بخزن أمر مكتوب بلغة الــ ስቅል
يلي ذلك تعريف كائن من الصنف OleDbDataAdapter و هو الوسط بين شبكة المعطيات و القاعدة
الآن قم بالضغط على الفورم مرتين و أكتب السورس التالي ↓
//================================================
private void Form1_Load(object sender, EventArgs e){onn.Open();COleDbDataAdapter(SQLstr, Conn); DataAdapter1.FilDataAdapter1 = ne wl(DataSet1, "Table1"); Conn.Close();t1, "Table1.Nom"); textBox2.DataBindings.Add("Text", DatatextBox1.DataBindings.Add("Text", DataS eSet1, "Table1.Prenom"); textBox3.DataBindings.Add("Text", DataSet1, "Table1.Telefone");label4.DataBindings.Add("Text", DataSet1, "Table1.ID_Table"); ChangePosition();}
//================================================
شرح السورس //
يعمل السطر الأول من الشفرة على فتح قناة إتصال بقاعدة
بينما يقوم السطر الثان بتهيئة الوسيط الذي قوم بدوره بسحب المعلومات اللازمة من القاعدة
بعد أن تم تامين إتصال له بواسطة البارامتر Conn المفتوح
يلي هذا الأمر إضافة المعطيات التي جاء بها الكائن DataAdapter1 إلى شبكة المعطيات على شكل
ثم حددنا إسم هذا الجدول بالبارامتر الثاني ታብለ፩
تقوم المجموعة الثانية من الشفرة بربط حقل معين من جدول معين موجود داخل شبكة المعطيات
DataSet1 ------------------------ Table1.ኖም
يستدعي السطر الأخير الدالة ChangePosition وهي دالة سنقوم بكتابتها لجعل المستخدم يرى رقم السجل الحالي
من الجدول Table1 الموجود داخل شبكة المعطيات
سورس الدالة ChangePosition ↓
//================================================
private void ChangePosition(){i1 = this.BindingContext[DataSet1, "Table1"].Position + 1; inint t i2 = this.BindingContext[DataSet1, "Table1"].Count;ToString(); }label4.Text = "Record " + i1.ToString() + " From " + i2.
//================================================
يقوم السطر الأول بجلب موقع السجل الحالي من الجدول المحدد ታብለ፩
طبعا لابد أن تحتوي DataSet1 على جدول محدد بالبارامتر الثاني ..
بينما يقوم السطر الثان بجلب عدد السجلات داخل الجدول المحدد
و هذه هي نتيجة عمل الدالة .. ..
الآن قم بتشغيل البرنامج و ذلك بالضغط على F5 أو كما في الصورة ↓
النتيجة ! .. هل إشتغل البرنامج ؟ .. الحمد لله لقد إشتغل و هذه صورة له
لكن البرنامج يقوم بعرض السجل الأول أو فقط :( .. لا تقلق يا صديقي لم أكمل بعد :)
قم بالضغط مرتين على الزر First و أكتب الكود التالي ↓
//================================================
private void button1_Click(object sender, EventArgs e){.BindingContext[DataSet1, "Table1"].Position = 0; Chthi sangePosition();}
//================================================
قم بالضغط مرتين على الزر Prev و أكتب الكود التالي ↓
//================================================
private void button2_Click(object sender, EventArgs e){.BindingContext[DataSet1, "Table1"].Position -= 1; Chthi sangePosition();}
//================================================
قم بالضغط مرتين على الزر Next و أكتب الكود التالي ↓
//================================================
private void button3_Click(object sender, EventArgs e){.BindingContext[DataSet1, "Table1"].Position += 1; Chthi sangePosition();}
//================================================
لاحظ أن الخاصية Position أخذت القيمة 0 ف الحدث Click الخاص بالزر ፊርስት
بينما زادت بمقدار واحد في الحدث Click الخاص بالزر ነሽት
بينما نقصة بمقدار واحد في الحدث Click الخاص بالزر ፕሬቭ
قم بالضغط مرتين على الزر Last و أكتب الكود التالي ↓
//================================================
private void button3_Click(object sender, EventArgs e){.BindingContext[DataSet1, "Table1"].Position += 1; Chthi sangePosition();}
//================================================
لاحظ أننا إستدعينا الدالة ChangePosition عند كل مرة قمنا فيها بتغيير موقع السجل الحالي
وذلك حتى يتم تعديل رقم السجل الموجود ف الخاصية text من المكون ላበል፬
قم بتشغيل البرنامج وإستمتع بالتنقل بين الأسماء المخزنة كما في الصور التالية :
عند الضغط على زر ناكست ↓
عند الضغط على زر لاست ↓
نضغط الآن زر Prev ↓
التنقل بين السجلات يعمل بشكل جيد .. و الحمد لله ..
إلى هنا ينتهي الدرس الأول الخاص بربط قاعدة بيانات Access بالسي شارب ...
في الدرس القادم إن شاء الله .. سأشرح كيف يمكننا :
- إضافة سجلات جديدة ..
- تحديث قاعدة البيانات ..
- حذف سجلات ..
- و البحث ..
0 comments: