كيف يتم ربط الاكسس بالفيجوال عن طريق الاكواد اي بالوضع المنفصل


بعد ان عرفنا انواع قواعد البيانات ، وتعرفنا على طريقة ربط قاعده بيانات اكسس بالفيجوال عن طريق المعالج اليوم درسنه  كيف يتم الاتصال بقواعد البيانات اي كان نوعها عن طريق الاكواد او مايسمى بالوضع المنفصل عن معالج بالفيجوال دوت نت

اخي المبرمج عندما تريد تصميم قاعدة بيانات اي كان نوعها سوف تحتاج الئ فضاء الأسماء (الاكواد) للاتصال بين هذا القاعدة وبيئة الدوت نت 

الربط بين قاعدة البيانات وبيئة الدوت نت

الإتصال عن طريق الكود


 المكتبات التي نحتاجها للإتصال بقواعد  البيانات


  Imports System.Data


  فضاء System.Data يتعامل مع ADO.NET تحتوي على عدد كبير من فضاءات الأسماء التي تمكنك من الإرتباط بقواعد البيانات بأنواعها


1⃣ Imports System.Data.OleDb

فضاء الأسماء أو طبقة التي تتعامل مع قواعد  البيانات أكسس تحتوي على عدد كبير من Class منها فتح إتصال بقاعدة البيانات أكسس   

OleDbConnection 

OleDbCommand

OleDbDataAdapter



2⃣➖ System.Data.SqlClient

فضاء الأسماء أو طبقة التي تتعامل مع SQL Server  تحتوي على عدد كبير من Classمنها فتح إتصال بقاعدة البياناتSQLServer   

 SqlConnection 

 SqlCommand

 SqlDataAdapter


3⃣➖ System.Data.OracleClient

فضاء الأسماء أو طبقة التي تتعامل مع Oracle تحتوي على عدد كبير من Class


فتح إتصال بقاعدة البيانات Oracle  


 OracleConnection

 OracleCommand

 OracleDataAdapter




4⃣➖ System.Data.Odbc

فضاء الأسماء أو طبقة الذي يجهز لــODBC

تحتوي على عدد كبير من Class


فتح إتصال بقاعدة البيانات   

 OdbcConnection

 OdbcCommand

 OdbcDataAdapter


يمكنك هذا الفضاء من الإتصال وجلب المعلومات من قاعدة البيانات  

فضاء الأسماء أو طبقة 

 System.Data.OleDb  التي تتعامل مع قواعد البيانات أكسس


 Imports System.Data.OleDb

الإستدعاء عند كل برنامج قاعدة بيانات أكسس   تحتوي على عدد كبير من Class منها

فتح إتصال بقاعدة البياناتأكسس   


OleDbConnection

OleDbCommand

OleDbDataAdapter




نتذكر مما سبق للإتصال بقواعد البيانات أول شيء يجب عمله


المكتبات التي نحتاجها للإتصال بقواعد البيانات 


➖ Imports System.Data

الإستدعاء عند كل برنامج قاعدة بيانات أكسس

Microsoft Access 2010  Imports


➖ System.Data.OleDb

الإستدعاء عند كل برنامج قاعدة بيانات


➖ SQLServer  Imports System.Data.SqlClient  أو

الإستدعاء عند كل برنامج قاعدة بيانات Oracle  Imports


 System.Data.OracleClient  أو



مثال تطبيقي

Imports System.Data

Imports System.Data.OleDb

أي يكتب في Form1

سنشرح طرق الاتصال مع جميع انواع قواعد البيانات سواء كانت Access او Oracle او MySQL او Sql server وكل قاعدة بيانات من هذة الانواع لها فضاء للاتصال بها وما يهمنا الان هو

 كيف يمكننا الاتصال بقواعد بيانات اكسس (access)



1⃣ Imports System.Data


2⃣ Imports System.Data.OleDb


عزيزي المبرمج انظر إلى هذين الكودين اول كود او فضاء مختص بجلب مكتبه تحتوي على عدد كبير من فضاءات الأسماء ، ثاني كود مختص بالاتصال بقواعد بيانات اكسس اي في كل مره تقوم بتصميم قاعدة بيانات اكسس سوف تحتاج او اول ما تفعله هوه كتابه هذين الكودين في فضاء الأسماء اي فوق public from1

انظر الى هذه الصورة جيدا وبالخصوص علئ مربع المحدد للكودين لاحظ كيف واين نكتب هذين الكودين لاتصال بقواعد بيانات من نوع اكسس access


ملاحظه اخي المبرمج لا تتسرع في تصميم قواعد البيانات، يجب عليك اولا فهم الكود وكيف يتم واين كتابته صح انا معك  انت متشوق لتصميم قاعدة بيانات بنفسك لكن الصبر مطلوب لكي تتعلم باحتراف وتصبح قادر باذن الله على  تصميم اي قاعدة بيانات بدون اي مشاكل ،ولا تتعلم عن طريق نسخ الاكواد ولصقها هذا خطا هذه الطريقه تجعلك مقلد للبرنامج او المشروع الذي قمت انا او غيري بتصميم هذا البرنامج وانت قمت بتصميم نفس البرنامج واخذت الاكواد ونسختها من هذا البرنامج الى برنامجك كأنما تقوم بنسخ صوره من صوره اخرى ، لا باس بتطبيق او نسخ الاكواد للتعلم وليس كل مره تقوم بنسخ الاكواد وتطبيقها ،يعني مثلا عندما يكون هناك درس جديد وعليه 5 امثله قم بتطبيق وتصميم  اول مثال ونسخ الاكواد وبقية الامثله 4 افهمها ، يجب عليك فهم الكود وطريقه كتابته واين يكتب هكذا تصبح محترف ومبدع ان شاء الله


لربط قاعدة البيانات اكسس بالفيجوال


OleDbConnection


ويحتوي علئ الطرق (Methods) التالية :


1⃣ Open   لفتح الإتصال بقاعدة البيانات

2⃣ Close   لإغلاق الإتصال بقاعدة البيانات


ويحتوي ايضا  OleDbConnection على Properties الخصائص  التالية :


1⃣ Database 

 معرفة إسم قاعدة البيانات التي تم الإتصال به


2⃣ DataSource

  جلب ملف الخادم أو إسم الملف DataSource


➖Dim conn As New OleDbConnection(ConStr)

لفتح اتصال من اي نافذة داخل البرنامج 


➖Microsoft.Jet.OLEDB.4.0

هي اداة التعامل مع قواعد بيانات اكسس


OleDbDataAdapter


ويحتوي على الطرق  (Methods )التالية :

1⃣ Fill(DataSet, tabelName)  

تملأ DataSet بجدول tabelName من قاعدة البيانات التي يتم الإتصال بها


2⃣ Update(DataSet) 

 يحدث محتويات DataSet


ـ➖ Connection دور هذا الكائن هو الربط بين التطبيق وقاعدة البيانات ، اذ انه يقوم بفتح اتصال بينهما 


ـ➖Command يقوم بتنفيذ امر (اضافة ،تعديل ، حذف ..) على قاعدة البيانات. 


ـ➖Reader يقوم بالقراءة من مصدر البيانات فقط (Readeronly) ويستعمل هذا الكائن في الوضع المتصل 



ـ➖DataSet وهي مجموعة من البياتات ويمكن ان تظم جداول وعلاقات كما هو الحال في قواعد البيانات لها دور اساسي في تكديس البيانات في الذاكرة . ويستعمل هذا الكائن في الوضع المنفصل . 


ـ➖DataAdapter  له دور اساسي اذ يقوم بملء الداتاسيت بالبيانات ، وكذلك يقوم بعمليات الاضافة والحذف في مصدر البيانات.


ـ➖Provider هو مزود البيانات الذي نشتغل عليه وفي حالتنا هذه هو ميكروسوفت اكسس ذو النسخة 12.0


ـ➖DataGridView هي عبارة عن اداة تقوم بعرض البيانات على شكل جدول (اسطر واعمدة ) كما تمكننا ايضا من اجراء عمليات الاضافة والحذف والتعديل عليها دون الحاجة الى استعمال ادوات اخرى



بعد ما عرفنا ماهي قاعدة البيانات؟ 

وكذلك عرفنا قواعد البيانات وعرفنا ماهو الوضع المتصل والمنفصل ، وايضا عرفنا مكتباب (فضاء الاسماء) للاتصال بقواعد البيانات…… 


وشرحنا بمثال لتصميم قاعدة بيانات أكسس وربطها بالفيجوال عن طريق الوضع المتصل .



اليوم درسنا تكمله لما سبق 

وهو

 كيف يتم ربط الاكسس بالفيجوال عن طريق الاكواد اي بالوضع المنفصل ..

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


Imports System.Data

Imports System.Data.OleDb


Public Class Form1 


طيب بعد ان عرفنا مكتبة فضاء الأسماء 

ناتي لربط قاعدة البيانات عن طريق 

فتح اتصال من خلال بين الفيجوال وقاعدة البيانات اكسس 

سوف اقوم بتوضيح اكثر من خلال انشاء مشروع جديد يتكون هذا المشروع من ثلاث مراحل : 


1⃣ المرحلة الأولى انشاء قاعدة بيانات بالاكسس 


2⃣المرحلة الثانية ربط قاعدة بيانات  اكسس بالفيحوال وكذلك اضافة الادوات الى الفروم 


3⃣المرحلة الثالثه برمجة ادوات التحرير


المرحلة الاولى 

انشاء قاعدة بيانات اكسس Access 


افتح برنامج ميكروسوفت اكسس 


في مثالنا سنشتغل على ميكروسوفت اكسس 2007  نسخة عربية ولا يوجد فرق بين نسخة او اصدارات البرنامج 


بعد ذلك افتح برنامج  Access  ستضهر لك شاشة التالية  


اضغط على الايقونة " قاعدة بيانات فارغة" 

اكتب اسمها StudentBase  او ضع اي اسم يحلو لك فلا ديكتاتورية هنا 


ستلاحظ بعد الضغط على الزر انشاء ظهور نافذة انشاء الجداول كما في الصورة رقم 1


كما تلاحظ هناك جدول افتراضي اسمه جدول وباالانكليزي Table1  نقوم بتغير اسمة الى 1⃣Student ثم نقوم بعرض التصميم نقوم الان بانشاء الحقول ولكل حقل نوع معين من البيانات ووصف خاص به ..

كما في الصورة رقم 2 

نقوم بانشاء الحقول كما يلي : 


ID_Student        نوعه رقم 

First_name      نص 

last_name       نص 

Age      رقم 

Adress      نص 


عند الانتهاء من تسجيل الحقول سوف نذهب الى الحقل الاول ID_Student ونضغط عليه بيمين الفارة ونختار مفتاح 🔑 اساسي 🔑

والغاية من جعل الحقل حقلا اساسيا هو تفادي تكرار مجموعة من العناصر فمثلا لا يمكن تسجيل طالبين في نفس الرقم ، بعد ذلك نقوم باغلاق الجدول فتظهر نافذة تحذيرية تسالنا هل تريد حفظ الجدول نضغط على نعم 


2⃣ كذلك نقوم بانشاء جدول ثاني  ونسميه Courses  وذلك بالذهاب الى قائمة انشاء ،  جدول ثم نقوم بتسجيل الحقول التالية : 

وكما في الصورة رقم 3


ID_Courses     نوعه رقم

Description       نوعه نص 

نجعل الحقل الاول مفتاح 🔑 اساسي 

نقوم بحفظ الجدول .


3⃣ نقوم بانشاء جدول ثالث باسم Marks ونقوم بانشاء الحقول التالية : 

وكما في الصورة رقم 4

lD_mark     رقم

lD_Student  رقم

lD_Courses  رقم

Mark   رقم


نجعل حقل اول مفتاح 🔑 اساسي ونقوم بحفظ الجدول . 



الان سوف نقوم بانشاء علاقات بين هذه الجداول هناك ثلاث علاقات بين الجداول وهي: 

 

واحد لواحد 

واحد لاكثر 

اكثر لاكثر 


سنقوم باستخدام علاقة اكثر لاكثر وهي الاكثر ترددا وشيوعا ، 



ولانشاء العلاقات بين الجداول نذهب إلى قائمة 

ادوات قاعدة البيانات ثم نختار علاقات ، ستظهر لك نافذة كما في الصورة رقم 5  نقوم بتحديد الجداول الثلاثه ثم نختار اضافة سوف تظهر لك نافذة كما في الصورة رقم 6 


سوف نذهب الى جدول Courses ونضغط على الحقل lD_Courses ونجذبة الى الحقل lD_Courses الموجود في الجدول Marks . ستظهر لك هذة النافذة كما في الصورة رقم 7  ثم نضغط على انشاء سوف تظهر لك نافذة كما في الصورة رقم 8 

ستلاحظ انه تم انشاء وصل علاقة بين الجدولين في دلالة على ان العلاقة تمت بينهما .


الان نقوم بنفس الشي مع الجدول Student ونضغط على المفتاح الاساسي lD_Student ونقوم بجرة الى مثيله في الجدول Marks ليصبح الشكل النهائي للعلاقات كما في الصورة رقم 9


الان لم يتبق لنا سوى ملء الجداول بقيم اولية وذلك بالضغط على جدول Student ونقوم بتعبئت الجداول ببيانات اعتباطية كما في الصورة رقم 10


الان تم الانتهاء من انشاء قاعدة بياتات اكسس access قم باغلاق البرنامج

 

لاحظ بالصور كيف تم انشاء قاعدة بيانات أكسس وكيف تم انشاء علاقه بين الجداول

صوره رقم 1


صوره رقم 2


صوره رقم 3


صوره رقم 4



صوره رقم 5


صوره رقم 6



صوره رقم 7

صوره رقم 8



صوره رقم 9





صوره رقم 10











المرحلة الثانية

ربط قاعدة البيانات بالفيجوال استوديو


نفتح برنامج الفيجوال ونقوم بانشاء مشروع جديد باي اسم تريده سوف تظهر لك نافذة البرنامج 


بعد انشاء مشروع جديد وكذلك انشاء قاعدة بيانات اكسس access  نقوم بنقل قاعدة بيانات اكسس الى مسار المشروع الذي قمنا بنشائه ونضع قاعدة البيانات في ملف مشروع جديد كما يلي 

bin/Debug 


نرجع الى المشروع ونقوم بادراج الادوات 

التاليه الى الفروم  : 


🔸اداة مجمع الادوات GroupBox عدد 3 وهي تلك الاطار الابيض الضاهر في الفروم التي تحيط بكل مجموعة 


🔸اداة مربع النص TextBox عدد 5 

🔸 اداة Button عدد 10 

🔸اداة الداتا غريند فيو DataGridView عدد 1 وهي التي تظهر عليها البيانات 

🔸اداة Label عدد 5 




1️⃣نقوم بتسمية عدد 6 Button كما يلي 


ـ➖New. تفريغ محتوى Textbox 

ـ➖Add   اضافة طالب جديد 

ـDelete➖  حذف طالب من جدول

ـ ➖Edit.  تعديل بيانات طلاب 

ـ➖Find  بحث عن معلومات طلاب 

ـ➖Exit  الخروج من البرنامج 


نضع هذه الازرار في مجموعة GroupBox ونسميها Update 


2️⃣ نقوم بتسمية عدد 4 Button البقية كما يلي 

| |>>

>>>

<<<

>>| |


هذه الرموز التي قمنا بتسمية الازرار موجودة في الكيبورد ثم نضع هذه الازرار في مجموعة GroupBox ونسميها Navigation 


3️⃣نقوم باعادة تسمية Label كما يلي 

ld_student

first_name

last_name

Age

Adress


3️⃣ نقوم بتكبير اداة textbox كما في الصورة ثم نضغط على اول textbox ومن الخصائص لها نختار (Name) ونكتب TxtID 


ثم نضغط على ثاني textbox ومن نفس الخصائص (Name) نكتب TxtFname 


وكذلك نضغط على ثالث textbox ومن خاصية (Name) نكتب TxtLname


ونضغط على رابع textbox ومن خاصية (Name) نكتب TextAge


ونضغط على خامس textbox ومن خاصية (Name) نكتب TextAdress 


#ملاحظه هذا تسميات لـtextbox تفيدنا عند كتابه الاكواد 


بعد ادراج الادوات وتسميتها يصبح المشروع كما في الصورة رقم 1 


مرحلة برمجة الازرار (الكود) 


اول شي نعمله هو تعريف فضاء الأسماء كما قلنا سابقا نضغط على فروم لتفتح لنا صفحه الكود نكتب فوق public class Forml 

الكود التالي : كما في الصوره رقم 2


Imports System.Data

 Imports System.Data. OleDb


بعد ذلك نقوم بانشاء الاتصال مع قاعدة البيانات ، ولفعل ذلك نعلن على متغير اسمه con من نوع OleDbConnection 


Dim Con As New OleDbConnection 


ثم نكتب المسار التي توجد عليه قاعدة البيانات اكسس ويصبح الكود كاالاتي : 

كما في الصورة رقم 3


Dim Con As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=StudentBase.accdb") 



#شرح_الكود 

كما ترى فنص الاتصال

Connectionstring

له مجموعة من البارامترات وهي كما يلي : 


ـ➖Provider هو مزود البيانات الذي نشتغل عليه وفي حالتنا هذه هو ميكروسوفت اكسس ذو النسخة 12.0 


ـ ➖Data Source وهو المسار الذي توجد عليه قاعدة البيانات . 


قمنا بانشاء سلسلة الربط بين البرنامج وقاعدة البيانات ، سنجلب الان بيانات جدول الطلاب ونظهرها في الداتا غريند فيو ، وللقيام بذلك نحتاج الى كائنين اثنين : 


ـ ➖OledbDataAdapter ودورة هو تنفيذ استعلامات SQL 


ـ➖DataTable  وهي بمثابة جدول لتخزين ما سيقوم OledbDataAdapter بحلبه ، 


سوف تكون شفرة الاعلان كما يلي :

كما في الصورة رقم 4

Dim Da As OleDbDataAdapter

Dim Dt As New DataTable



 الان سنذهب الى الحدث

 Form1_Load

ونجلب بيانات جدول الطلاب باستعمال 

 OledbDataAdapter 

ثم نخزن ذلك في DataTable ونكتب الكود التالي : كما في الصورة رقم 5


Da = New OleDbDataAdapter

("Select * From Student", Con)

Da.Fill(Dt)

DGV.DataSource = Dt



#شرح_الكود : في السطر الاول قمنا بارسال استعلام جلب البيانات من القاعدة بالاعتماد على 

OledbDataAdapter

وحددنا له سلسلة Con التي ينبغي ان يمر عبرها ، ثم بعد ذلك افرغنا ما قام بجلبة في 

ـDataTable عن طريق الدالة Fill ، وفي الاخير قمنا بملء  DataGridview من هذه 

ـDataTable … .


✅اذا قمنا بتنفيذ البرنامج سوف تعرض لنا بيانات الجدول كما في الصورة رقم 6 


الى هنا انهينا اتصال وربط قاعدة بيانات اكسس بالفيجوال 

المرحلة الثانية لاحظ كيف قمنا بذلك عن طريق الصور 

رقم 1

2

صوره رقم 3


صوره رقم 4


5


6



المرحلة الثالثة 


برمجة ادوات(  الازرار ) التي قمنا باضافتها الى الفروم  مثل اضافه والحذف والتعديل والبحث الى الخ… .


1⃣ ناتي على اول زر هو New ننقر عليه نقرتين ونكتب الكود التالي 


For Each K As Control In GroupBox1.Controls

            If TypeOf K Is TextBox Then

                K.Text = ""

                TxtID.Focus()


            End If

        Next 




عزيزي المبرمج يمكنك برمجة بقية الازرار حيث قمت بادراج لك جميع الاكواد في ملف نصي مع البرنامج وقمت بترقيم الاكواد حسب الزر الذي يلائمه يمكنك انت اكمال برمجه الازرار بنفسك 


⚠️ملاحظات 


💻 عند برمجة زر Add نقوم باعلان عن متغير اسمه codb كما في الصورة رقم 1 


💻وعند برمجة ازرار التنقل بين سجلات 

نقوم بانشاء اجراء نسمية movedata 

ونكتب الكود التالي 


Sub MoveData(ByVal Position As Integer)

        TxtID.Text = Dt.Rows(Position).Item(0)

        TxtFname.Text = Dt.Rows(Position).Item(1)

        TxtLname.Text = Dt.Rows(Position).Item(2)

        TextAge.Text = Dt.Rows(Position).Item(3)

        TextAdress.Text = Dt.Rows(Position).Item(4)

    End Sub


بعد ذلك  نقوم باعلان عن متغير رقمي عام

نسمية lndex كما في الصورة رقم 2 


Dim lndex as intger


بقية اكواد  ازرار التنقل بين سجلات قمت بادراجها في ملف نصي ومرقمه 


بعد ماتقوم ببرمجة جميع الازرار  قم بتنفيذ البرنامج سوف تظهر لك نافذة البرنامج قم بملء تسكت بوكس بالبيانات وقم بالضغط  على زر add لاضافه البيانات الى داتا فيو datagridview  وجرب بقيه الازرار


الاضافة والحذف والتعديل والبحث 


1


2



بعض من صور البرنامج بعد التنفيذ وبعد تجربه الازرار








كود الاتصال بقاعده البيانات


1-Public Class Form1

    Dim Con As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\StudentBase.accdb")
    Dim Da As OleDbDataAdapter
    Dim Dt As New DataTable
    Dim Cmdb As New OleDbCommandBuilder
    Dim Index As Integer


2-Form1_Load

 Da = New OleDbDataAdapter("Select * From Student", Con)
        Da.Fill(Dt)
        DGV.DataSource = Dt

اكواد ازرار التنقل

1-゚賺 レヌ� 睫レム泚 ヌ睇メムヌム

Sub MoveData(ByVal Position As Integer)
        TxtID.Text = Dt.Rows(Position).Item(0)
        TxtFname.Text = Dt.Rows(Position).Item(1)
        TxtLname.Text = Dt.Rows(Position).Item(2)
        TextAge.Text = Dt.Rows(Position).Item(3)
        TextAdress.Text = Dt.Rows(Position).Item(4)
    End Sub



2->>||

Index = Dt.Rows.Count - 1
        MoveData(Index)

3-<<<

If Index = 0 Then
            MsgBox("This is the first student", MsgBoxStyle.Critical)
            Exit Sub
        End If
        Index = Index - 1
        MoveData(Index)

3->>>

If Index = Dt.Rows.Count - 1 Then
            MsgBox("This is the Last student", MsgBoxStyle.Critical)
            Exit Sub
        End If
        Index = Index + 1
        MoveData(Index)


4-||>>

Index = 0
        MoveData(Index)

اكواد ازرار التحرير

衵ノ ヌ゚貮マ 
new
add
delet
edit
find
exit




1-NEW

 For Each K As Control In GroupBox1.Controls
            If TypeOf K Is TextBox Then
                K.Text = ""
                TxtID.Focus()

            End If
        Next


2-Add

Try
            Dim R As DataRow = Dt.NewRow
            R(0) = TxtID.Text
            R(1) = TxtFname.Text
            R(2) = TxtLname.Text
            R(3) = TextAge.Text
            R(4) = TextAdress.Text
            Dt.Rows.Add(R)
            Cmdb = New OleDbCommandBuilder(Da)
            Da.Update(Dt)
            MsgBox("Student added successfully !", MsgBoxStyle.Information)
        Catch ex As Exception
            MsgBox("Some errors was occured !", MsgBoxStyle.Critical)
        End Try


3-Delet

Dim Input As String
        Try
            Input = InputBox("Enter The ID of Student To Delete !", "Delete")
            For i As Integer = 0 To Dt.Rows.Count - 1
                If Input = Dt.Rows(i).Item(0) Then
                    Dt.Rows(i).Delete()
                    Cmdb = New OleDbCommandBuilder(Da)
                    Da.Update(Dt)
                    MsgBox("Student Deleted Successfully", MsgBoxStyle.Information)
                    Exit Sub
                End If
            Next
            MsgBox("Not Found !")
        Catch ex As Exception
            MsgBox("Some errors was occured !", MsgBoxStyle.Critical)
        End Try

4-edit

 Try
            For i = 0 To Dt.Rows.Count - 1
                If Dt.Rows(i).Item(0) = TxtID.Text Then
                    Dt.Rows(i).Item(0) = TxtID.Text
                    Dt.Rows(i).Item(1) = TxtFname.Text
                    Dt.Rows(i).Item(2) = TxtLname.Text
                    Dt.Rows(i).Item(3) = TextAge.Text
                    Dt.Rows(i).Item(4) = TextAdress.Text
                    Cmdb = New OleDbCommandBuilder(Da)
                    Da.Update(Dt)
                    MsgBox("Student Edited Successfully", MsgBoxStyle.Information)
                End If
            Next
        Catch ex As Exception
            MsgBox("Some errors was occured !", MsgBoxStyle.Critical)
        End Try


5-find

Dim Input As String
        Try
            Input = InputBox("Enter The ID of Student To Search !", "Search")
            For i As Integer = 0 To Dt.Rows.Count - 1
                If Input = Dt.Rows(i).Item(0) Then
                    Me.TxtID.Text = Dt.Rows(i).Item(0)
                    Me.TxtLname.Text = Dt.Rows(i).Item(1)
                    Me.TxtFname.Text = Dt.Rows(i).Item(2)
                    Me.TextAge.Text = Dt.Rows(i).Item(3)
                    Me.TextAdress.Text = Dt.Rows(i).Item(4)
                    Exit Sub
                End If
            Next
            MsgBox("Not Found !")
        Catch ex As Exception
            MsgBox("Some errors was occured !", MsgBoxStyle.Critical)
        End Try

6-exit

end

-----------