10-10-12, 08:47 AM
كاتب الموضوع : الخبير
السلام عليكم و رحمة الله و بركاته
رمضان كريم للجميع
بعد غياب طويل عن صفحات منتدى فيجوال بيسك للعرب و ذلك بسبب الامتحانات المهمة جدا لمستقبلي أتيت لتيت لكم بموضوع مهم و مفيد لجميع الأعضاء "قواعد البيانات"
و لكن في هذا القسم و بسبب كثرة مواضيعه و أساليب الربط بقواعد البيانات يضيع المبتدئ و الذي يريد أن يتعلم من البداية
سنتعلم قواعد البيانات من خلال تصميم برنامج يحتوي على جميع الأدوات التي يمكنك ربط قواعد البيانات بها
سنعتمد برنامج دليل هاتف متقدم و مطور
نبدأ ؟؟
لغة البرمجة : Visual Basic 2010 لا يختلف كثيرا عن الـ 2008
قاعدة البيانات : Access 2003 يمكن حفظ بهضه الصيغة من أي اصدار حتى الـ 2010
أولا تصميم قاعدة البيانات و إنشاء مشروع جديد و ربطه بقاعدة البيانات و إضافة الأدوات :
نفتح Microsoft Access أي اصدار أنا لدي 2010
و نصمم قاعدة باسم Database و تحتوي جدول مثل التالي و نحفظه باسم Table1
![[صورة مرفقة: 18_01349844184.gif]](https://vb4arb.com/vb/uploaded/18_01349844184.gif)
![[صورة مرفقة: 18_01349844233.gif]](https://vb4arb.com/vb/uploaded/18_01349844233.gif)
![[صورة مرفقة: 18_01349844254.gif]](https://vb4arb.com/vb/uploaded/18_01349844254.gif)
الأن فكرة البرنامج قبل البدء بالتصميم :
دليل هاتف مطور يتم عرض كل المعلومات في TextBox
و التعديل أيضا من TextBox
و يتم عرض كل النتائج في DataGridView
مع عملية بحث بحسب كل تفصيل من تفاصيل المستخدم
الأن نفتح الفيجوال ستوديو و ننشئ مشروع جديد باسم Phone و نحفظه في سطح المكتب
![[صورة مرفقة: 18_01349844275.gif]](https://vb4arb.com/vb/uploaded/18_01349844275.gif)
و ننقل قاعدة البيانات إلى المسار التالي
Phone\Phone\bin\Debug في البرنامج
بالنسبة لتنسيق الفورم نضيف TextBox عدد 9 و ComboBox عدد 1 و DataGridView عدد 1 و Button عدد 8 و نرتبهم كما نريد هذا ترتيب برنامجي
![[صورة مرفقة: 18_01349844323.gif]](https://vb4arb.com/vb/uploaded/18_01349844323.gif)
الأن مرحلة الأكواد
نبدأ باستيراد المجالات التالية و نضعها في قسم العام
الأن في حدث Public Class Form1 نضع الكود التالي
هنا عرفنا المتغيير ds على أنه Dataset جديد
و المتغيير dt على أنه Datatable جديد لكي نربط مع الـ Table1
و المتغيير ConStr على أنه عملية الربط الكاملة مع قاعدة البيانات و تلاحظ
هنا عرفناه على قاعدة البيانات و مكان قاعدة البيانات و اسمها
هنا وجهنا البرنامج إلى الجدول الذي أنشأناه في قاعدة البيانات
الأن في حدث اللود للفورم
ما يهمنا من الكود هو هذا الجزء
و هنا وجهنا كل TextBox إلى الحقل الذي سيستعرض البيانات منه
و هذا الكود
و الذي من خلاله نجعل الـ DataGridView يقرئ قاعدة البياناتالسلام عليكم و رحمة الله و بركاته
رمضان كريم للجميع
بعد غياب طويل عن صفحات منتدى فيجوال بيسك للعرب و ذلك بسبب الامتحانات المهمة جدا لمستقبلي أتيت لتيت لكم بموضوع مهم و مفيد لجميع الأعضاء "قواعد البيانات"
و لكن في هذا القسم و بسبب كثرة مواضيعه و أساليب الربط بقواعد البيانات يضيع المبتدئ و الذي يريد أن يتعلم من البداية
سنتعلم قواعد البيانات من خلال تصميم برنامج يحتوي على جميع الأدوات التي يمكنك ربط قواعد البيانات بها
سنعتمد برنامج دليل هاتف متقدم و مطور
نبدأ ؟؟
لغة البرمجة : Visual Basic 2010 لا يختلف كثيرا عن الـ 2008
قاعدة البيانات : Access 2003 يمكن حفظ بهضه الصيغة من أي اصدار حتى الـ 2010
أولا تصميم قاعدة البيانات و إنشاء مشروع جديد و ربطه بقاعدة البيانات و إضافة الأدوات :
نفتح Microsoft Access أي اصدار أنا لدي 2010
و نصمم قاعدة باسم Database و تحتوي جدول مثل التالي و نحفظه باسم Table1
![[صورة مرفقة: 18_01349844184.gif]](https://vb4arb.com/vb/uploaded/18_01349844184.gif)
![[صورة مرفقة: 18_01349844233.gif]](https://vb4arb.com/vb/uploaded/18_01349844233.gif)
![[صورة مرفقة: 18_01349844254.gif]](https://vb4arb.com/vb/uploaded/18_01349844254.gif)
الأن فكرة البرنامج قبل البدء بالتصميم :
دليل هاتف مطور يتم عرض كل المعلومات في TextBox
و التعديل أيضا من TextBox
و يتم عرض كل النتائج في DataGridView
مع عملية بحث بحسب كل تفصيل من تفاصيل المستخدم
الأن نفتح الفيجوال ستوديو و ننشئ مشروع جديد باسم Phone و نحفظه في سطح المكتب
![[صورة مرفقة: 18_01349844275.gif]](https://vb4arb.com/vb/uploaded/18_01349844275.gif)
و ننقل قاعدة البيانات إلى المسار التالي
Phone\Phone\bin\Debug في البرنامج
بالنسبة لتنسيق الفورم نضيف TextBox عدد 9 و ComboBox عدد 1 و DataGridView عدد 1 و Button عدد 8 و نرتبهم كما نريد هذا ترتيب برنامجي
![[صورة مرفقة: 18_01349844323.gif]](https://vb4arb.com/vb/uploaded/18_01349844323.gif)
الأن مرحلة الأكواد
نبدأ باستيراد المجالات التالية و نضعها في قسم العام
كود :
[color=#000000][COLOR=#0000bb]Imports System[/color][color=#007700].[/color][COLOR=#0000bb]Data
Imports System[/COLOR][color=#007700].[/color][color=#0000bb]Data[/color][color=#007700].[/color][COLOR=#0000bb]OleDb
[/COLOR][/COLOR]الأن في حدث Public Class Form1 نضع الكود التالي
كود :
[COLOR=#000000][COLOR=#0000bb]
Dim ds [/COLOR][color=#007700]As New [/color][COLOR=#0000bb]DataSet
Dim dt [/COLOR][color=#007700]As New [/color][color=#0000bb]DataTable[/color][color=#007700]([/color][color=#dd0000]"Table1"[/color][COLOR=#007700])
[/COLOR][color=#0000bb]Dim ConStr [/color][color=#007700]As [/color][color=#0000bb]String [/color][color=#007700]= [/color][color=#dd0000]"Provider=Microsoft.Jet.OLEDB.4.0;" [/color][color=#007700]& [/color][COLOR=#0000bb]_
[/COLOR][color=#dd0000]"Data Source =" [/color][color=#007700]& [/color][color=#0000bb]Application[/color][color=#007700].[/color][color=#0000bb]StartupPath [/color][color=#007700]& [/color][COLOR=#dd0000]"\Database.mdb"
[/COLOR][color=#0000bb]Dim Conn [/color][color=#007700]As New [/color][color=#0000bb]OleDbConnection[/color][color=#007700]([/color][color=#0000bb]ConStr[/color][COLOR=#007700])
[/COLOR][color=#0000bb]Dim DataSet1 [/color][color=#007700]As New [/color][COLOR=#0000bb]DataSet
Dim SQLstr [/COLOR][color=#007700]As [/color][color=#0000bb]String [/color][color=#007700]= [/color][COLOR=#dd0000]"SELECT * FROM Table1"
[/COLOR][color=#0000bb]Dim m [/color][color=#007700]As [/color][COLOR=#0000bb]String
[/COLOR][/COLOR]هنا عرفنا المتغيير ds على أنه Dataset جديد
و المتغيير dt على أنه Datatable جديد لكي نربط مع الـ Table1
و المتغيير ConStr على أنه عملية الربط الكاملة مع قاعدة البيانات و تلاحظ
كود :
[color=#000000][COLOR=#0000bb][/color][color=#dd0000]"Data Source =" [/color][color=#007700]& [/color][color=#0000bb]Application[/color][color=#007700].[/color][color=#0000bb]StartupPath [/color][color=#007700]& [/color][COLOR=#dd0000]"\Database.mdb"
[/COLOR][color=#0000bb][/color][/COLOR]هنا عرفناه على قاعدة البيانات و مكان قاعدة البيانات و اسمها
كود :
[color=#000000][COLOR=#0000bb]Dim SQLstr [/color][color=#007700]As [/color][color=#0000bb]String [/color][color=#007700]= [/color][COLOR=#dd0000]"SELECT * FROM Table1"
[/COLOR][color=#0000bb][/color][/COLOR]هنا وجهنا البرنامج إلى الجدول الذي أنشأناه في قاعدة البيانات
الأن في حدث اللود للفورم
كود :
[color=#000000][COLOR=#0000bb][/color][color=#007700]Static [/color][color=#0000bb]m [/color][color=#007700]As [/color][color=#0000bb]Integer [/color][color=#007700]= [/color][COLOR=#0000bb]0
Conn[/COLOR][color=#007700].[/color][color=#0000bb]Open[/color][COLOR=#007700]()
[/COLOR][color=#0000bb]Dim DataAdapter1 [/color][color=#007700]As New [/color][color=#0000bb]OleDbDataAdapter[/color][color=#007700]([/color][color=#0000bb]SQLstr[/color][color=#007700], [/color][color=#0000bb]Conn[/color][COLOR=#007700])
[/COLOR][color=#0000bb]DataAdapter1[/color][color=#007700].[/color][color=#0000bb]Fill[/color][color=#007700]([/color][color=#0000bb]DataSet1[/color][color=#007700], [/color][color=#dd0000]"Table1"[/color][COLOR=#007700])
[/COLOR][color=#0000bb]Conn[/color][color=#007700].[/color][color=#0000bb]Close[/color][COLOR=#007700]()
[/COLOR][color=#0000bb]TextBox1[/color][color=#007700].[/color][color=#0000bb]DataBindings[/color][color=#007700].[/color][color=#0000bb]Add[/color][color=#007700]([/color][color=#dd0000]"Text"[/color][color=#007700], [/color][color=#0000bb]DataSet1[/color][color=#007700], [/color][color=#dd0000]"Table1.Name"[/color][COLOR=#007700])
[/COLOR][color=#0000bb]TextBox2[/color][color=#007700].[/color][color=#0000bb]DataBindings[/color][color=#007700].[/color][color=#0000bb]Add[/color][color=#007700]([/color][color=#dd0000]"Text"[/color][color=#007700], [/color][color=#0000bb]DataSet1[/color][color=#007700], [/color][color=#dd0000]"Table1.Number"[/color][COLOR=#007700])
[/COLOR][color=#0000bb]TextBox3[/color][color=#007700].[/color][color=#0000bb]DataBindings[/color][color=#007700].[/color][color=#0000bb]Add[/color][color=#007700]([/color][color=#dd0000]"Text"[/color][color=#007700], [/color][color=#0000bb]DataSet1[/color][color=#007700], [/color][color=#dd0000]"Table1.Address"[/color][COLOR=#007700])
[/COLOR][color=#0000bb]TextBox4[/color][color=#007700].[/color][color=#0000bb]DataBindings[/color][color=#007700].[/color][color=#0000bb]Add[/color][color=#007700]([/color][color=#dd0000]"Text"[/color][color=#007700], [/color][color=#0000bb]DataSet1[/color][color=#007700], [/color][color=#dd0000]"Table1.Mobile"[/color][COLOR=#007700])
&[/COLOR][COLOR=#ff8000]#12288;
[/COLOR][color=#007700]&[/color][COLOR=#ff8000]#12288;
[/COLOR][color=#0000bb]DataGridView1[/color][color=#007700].[/color][color=#0000bb]DataSource [/color][color=#007700]= [/color][COLOR=#0000bb]DataSet1
DataGridView1[/COLOR][color=#007700].[/color][color=#0000bb]DataMember [/color][color=#007700]= [/color][COLOR=#dd0000]"Table1"
[/COLOR][color=#0000bb][/color][/COLOR]ما يهمنا من الكود هو هذا الجزء
كود :
[color=#000000][COLOR=#0000bb]TextBox1[/color][color=#007700].[/color][color=#0000bb]DataBindings[/color][color=#007700].[/color][color=#0000bb]Add[/color][color=#007700]([/color][color=#dd0000]"Text"[/color][color=#007700], [/color][color=#0000bb]DataSet1[/color][color=#007700], [/color][color=#dd0000]"Table1.Name"[/color][COLOR=#007700])
[/COLOR][color=#0000bb]TextBox2[/color][color=#007700].[/color][color=#0000bb]DataBindings[/color][color=#007700].[/color][color=#0000bb]Add[/color][color=#007700]([/color][color=#dd0000]"Text"[/color][color=#007700], [/color][color=#0000bb]DataSet1[/color][color=#007700], [/color][color=#dd0000]"Table1.Number"[/color][COLOR=#007700])
[/COLOR][color=#0000bb]TextBox3[/color][color=#007700].[/color][color=#0000bb]DataBindings[/color][color=#007700].[/color][color=#0000bb]Add[/color][color=#007700]([/color][color=#dd0000]"Text"[/color][color=#007700], [/color][color=#0000bb]DataSet1[/color][color=#007700], [/color][color=#dd0000]"Table1.Address"[/color][COLOR=#007700])
[/COLOR][color=#0000bb]TextBox4[/color][color=#007700].[/color][color=#0000bb]DataBindings[/color][color=#007700].[/color][color=#0000bb]Add[/color][color=#007700]([/color][color=#dd0000]"Text"[/color][color=#007700], [/color][color=#0000bb]DataSet1[/color][color=#007700], [/color][color=#dd0000]"Table1.Mobile"[/color][COLOR=#007700])
[/COLOR][color=#0000bb][/color][/COLOR]و هنا وجهنا كل TextBox إلى الحقل الذي سيستعرض البيانات منه
و هذا الكود
كود :
[COLOR=#000000][COLOR=#0000bb]
DataGridView1[/COLOR][color=#007700].[/color][color=#0000bb]DataSource [/color][color=#007700]= [/color][COLOR=#0000bb]DataSet1
DataGridView1[/COLOR][color=#007700].[/color][color=#0000bb]DataMember [/color][color=#007700]= [/color][COLOR=#dd0000]"Table1"
[/COLOR][color=#0000bb][/color][/COLOR]إذا أضفنا بعض السجلات في قاعدة البيانات ستعرض هنا دعونا نجرب و لكن قبل ذلك دعونا نلقي نظرة على الكود في البرنامج
![[صورة مرفقة: 18_11349844323.gif]](https://vb4arb.com/vb/uploaded/18_11349844323.gif)
هل ترى هذا الخط الذي لدي لم أضعه في الكود الأول لأننا سنعرف حدث خاصا به بعد قليل
الأن نشغل البرنامج و نلاحظ
![[صورة مرفقة: 18_21349844323.gif]](https://vb4arb.com/vb/uploaded/18_21349844323.gif)
الأن دعونا نعرف هذا الحدث الذي أخبرتكم عليه
كود :
[COLOR=#000000][COLOR=#0000bb]
[/COLOR][color=#007700]Public [/color][color=#0000bb]Sub ChangePosition[/color][COLOR=#007700]()
[/COLOR][color=#0000bb]Label11[/color][color=#007700].[/color][color=#0000bb]RightToLeft [/color][color=#007700]= [/color][color=#0000bb]Windows[/color][color=#007700].[/color][color=#0000bb]Forms[/color][color=#007700].[/color][color=#0000bb]RightToLeft[/color][color=#007700].[/color][COLOR=#0000bb]Yes
Label11[/COLOR][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]= [/color][color=#dd0000]"السجل " [/color][color=#007700]& [/color][color=#0000bb]Me[/color][color=#007700].[/color][color=#0000bb]BindingContext[/color][color=#007700]([/color][color=#0000bb]DataSet1[/color][color=#007700], [/color][color=#dd0000]"table1"[/color][color=#007700]).[/color][color=#0000bb]Position [/color][color=#007700]& [/color][COLOR=#0000bb]_
[/COLOR][color=#dd0000]" من " [/color][color=#007700]& [/color][color=#0000bb]Me[/color][color=#007700].[/color][color=#0000bb]BindingContext[/color][color=#007700]([/color][color=#0000bb]DataSet1[/color][color=#007700], [/color][color=#dd0000]"table1"[/color][color=#007700]).[/color][color=#0000bb]Count [/color][color=#007700]- [/color][COLOR=#0000bb]1
End Sub
[/COLOR][/COLOR]![[صورة مرفقة: 18_31349844323.gif]](https://vb4arb.com/vb/uploaded/18_31349844323.gif)
الأن نشغل البرنامج و نلاحظ التعديل طبعا إلى Label11 هو ذلك المستطيل الذي بين زري السجل السابق و السجل التالي و مهمته عرض عدد السجلات
الأن أزرار التالي و الأول .....
أولا زر السجل الأول
كود :
[color=#000000][COLOR=#0000bb]Me[/color][color=#007700].[/color][color=#0000bb]BindingContext[/color][color=#007700]([/color][color=#0000bb]DataSet1[/color][color=#007700], [/color][color=#dd0000]"table1"[/color][color=#007700]).[/color][color=#0000bb]Position [/color][color=#007700]= [/color][COLOR=#0000bb]0
ChangePosition[/COLOR][COLOR=#007700]()
[/COLOR][color=#0000bb][/color][/COLOR]وهو للتنقل بين سجلات قاعدة البيانات بالنسبة للعدد صفر هو السجل الأول
الأن زر السجل السابق
كود :
[color=#000000][COLOR=#0000bb]Me[/color][color=#007700].[/color][color=#0000bb]BindingContext[/color][color=#007700]([/color][color=#0000bb]DataSet1[/color][color=#007700], [/color][color=#dd0000]"table1"[/color][color=#007700]).[/color][color=#0000bb]Position [/color][color=#007700]-= [/color][COLOR=#0000bb]1
ChangePosition[/COLOR][COLOR=#007700]()
[/COLOR][color=#0000bb][/color][/COLOR]نفس المهمة إنما ننتقل إلى السابق
السجل التالي
كود :
[color=#000000][COLOR=#0000bb]Me[/color][color=#007700].[/color][color=#0000bb]BindingContext[/color][color=#007700]([/color][color=#0000bb]DataSet1[/color][color=#007700], [/color][color=#dd0000]"table1"[/color][color=#007700]).[/color][color=#0000bb]Position [/color][color=#007700]+= [/color][COLOR=#0000bb]1
ChangePosition[/COLOR][COLOR=#007700]()
[/COLOR][color=#0000bb][/color][/COLOR]السجل الأخير
كود :
[color=#000000][COLOR=#0000bb]Me[/color][color=#007700].[/color][color=#0000bb]BindingContext[/color][color=#007700]([/color][color=#0000bb]DataSet1[/color][color=#007700], [/color][color=#dd0000]"table1"[/color][color=#007700]).[/color][color=#0000bb]Position [/color][color=#007700]= [/color][color=#0000bb]Me[/color][color=#007700].[/color][color=#0000bb]BindingContext[/color][color=#007700]([/color][color=#0000bb]DataSet1[/color][color=#007700], [/color][color=#dd0000]"table1"[/color][color=#007700]).[/color][color=#0000bb]Count [/color][color=#007700]- [/color][COLOR=#0000bb]1
ChangePosition[/COLOR][COLOR=#007700]()
[/COLOR][color=#0000bb][/color][/COLOR]درسنا لم ينتهي يتبع ...

![[صورة مرفقة: 18_01349844490.gif]](https://vb4arb.com/vb/uploaded/18_01349844490.gif)
![[صورة مرفقة: 18_01349844537.gif]](https://vb4arb.com/vb/uploaded/18_01349844537.gif)