10-10-12, 08:47 AM
كاتب الموضوع : الخبير
السلام عليكم و رحمة الله و بركاته
رمضان كريم للجميع
بعد غياب طويل عن صفحات منتدى فيجوال بيسك للعرب و ذلك بسبب الامتحانات المهمة جدا لمستقبلي أتيت لتيت لكم بموضوع مهم و مفيد لجميع الأعضاء "قواعد البيانات"
و لكن في هذا القسم و بسبب كثرة مواضيعه و أساليب الربط بقواعد البيانات يضيع المبتدئ و الذي يريد أن يتعلم من البداية
سنتعلم قواعد البيانات من خلال تصميم برنامج يحتوي على جميع الأدوات التي يمكنك ربط قواعد البيانات بها
سنعتمد برنامج دليل هاتف متقدم و مطور
نبدأ ؟؟
لغة البرمجة : Visual Basic 2010 لا يختلف كثيرا عن الـ 2008
قاعدة البيانات : Access 2003 يمكن حفظ بهضه الصيغة من أي اصدار حتى الـ 2010
أولا تصميم قاعدة البيانات و إنشاء مشروع جديد و ربطه بقاعدة البيانات و إضافة الأدوات :
نفتح Microsoft Access أي اصدار أنا لدي 2010
و نصمم قاعدة باسم Database و تحتوي جدول مثل التالي و نحفظه باسم Table1
الأن فكرة البرنامج قبل البدء بالتصميم :
دليل هاتف مطور يتم عرض كل المعلومات في TextBox
و التعديل أيضا من TextBox
و يتم عرض كل النتائج في DataGridView
مع عملية بحث بحسب كل تفصيل من تفاصيل المستخدم
الأن نفتح الفيجوال ستوديو و ننشئ مشروع جديد باسم Phone و نحفظه في سطح المكتب
و ننقل قاعدة البيانات إلى المسار التالي
Phone\Phone\bin\Debug في البرنامج
بالنسبة لتنسيق الفورم نضيف TextBox عدد 9 و ComboBox عدد 1 و DataGridView عدد 1 و Button عدد 8 و نرتبهم كما نريد هذا ترتيب برنامجي
الأن مرحلة الأكواد
نبدأ باستيراد المجالات التالية و نضعها في قسم العام
الأن في حدث Public Class Form1 نضع الكود التالي
هنا عرفنا المتغيير ds على أنه Dataset جديد
و المتغيير dt على أنه Datatable جديد لكي نربط مع الـ Table1
و المتغيير ConStr على أنه عملية الربط الكاملة مع قاعدة البيانات و تلاحظ
هنا عرفناه على قاعدة البيانات و مكان قاعدة البيانات و اسمها
هنا وجهنا البرنامج إلى الجدول الذي أنشأناه في قاعدة البيانات
الأن في حدث اللود للفورم
ما يهمنا من الكود هو هذا الجزء
و هنا وجهنا كل TextBox إلى الحقل الذي سيستعرض البيانات منه
و هذا الكود
و الذي من خلاله نجعل الـ DataGridView يقرئ قاعدة البياناتالسلام عليكم و رحمة الله و بركاته
رمضان كريم للجميع
بعد غياب طويل عن صفحات منتدى فيجوال بيسك للعرب و ذلك بسبب الامتحانات المهمة جدا لمستقبلي أتيت لتيت لكم بموضوع مهم و مفيد لجميع الأعضاء "قواعد البيانات"
و لكن في هذا القسم و بسبب كثرة مواضيعه و أساليب الربط بقواعد البيانات يضيع المبتدئ و الذي يريد أن يتعلم من البداية
سنتعلم قواعد البيانات من خلال تصميم برنامج يحتوي على جميع الأدوات التي يمكنك ربط قواعد البيانات بها
سنعتمد برنامج دليل هاتف متقدم و مطور
نبدأ ؟؟
لغة البرمجة : Visual Basic 2010 لا يختلف كثيرا عن الـ 2008
قاعدة البيانات : Access 2003 يمكن حفظ بهضه الصيغة من أي اصدار حتى الـ 2010
أولا تصميم قاعدة البيانات و إنشاء مشروع جديد و ربطه بقاعدة البيانات و إضافة الأدوات :
نفتح Microsoft Access أي اصدار أنا لدي 2010
و نصمم قاعدة باسم Database و تحتوي جدول مثل التالي و نحفظه باسم Table1
الأن فكرة البرنامج قبل البدء بالتصميم :
دليل هاتف مطور يتم عرض كل المعلومات في TextBox
و التعديل أيضا من TextBox
و يتم عرض كل النتائج في DataGridView
مع عملية بحث بحسب كل تفصيل من تفاصيل المستخدم
الأن نفتح الفيجوال ستوديو و ننشئ مشروع جديد باسم Phone و نحفظه في سطح المكتب
و ننقل قاعدة البيانات إلى المسار التالي
Phone\Phone\bin\Debug في البرنامج
بالنسبة لتنسيق الفورم نضيف TextBox عدد 9 و ComboBox عدد 1 و DataGridView عدد 1 و Button عدد 8 و نرتبهم كما نريد هذا ترتيب برنامجي
الأن مرحلة الأكواد
نبدأ باستيراد المجالات التالية و نضعها في قسم العام
كود :
[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]
إذا أضفنا بعض السجلات في قاعدة البيانات ستعرض هنا دعونا نجرب و لكن قبل ذلك دعونا نلقي نظرة على الكود في البرنامج
هل ترى هذا الخط الذي لدي لم أضعه في الكود الأول لأننا سنعرف حدث خاصا به بعد قليل
الأن نشغل البرنامج و نلاحظ
الأن دعونا نعرف هذا الحدث الذي أخبرتكم عليه
كود :
[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]
الأن نشغل البرنامج و نلاحظ التعديل طبعا إلى 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]
درسنا لم ينتهي يتبع ...