تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
حصريا بعد غياب | التعامل مع قواعد البيانات من الألف إلى الياء | شرح بالتفصيل و الصور
#1
كاتب الموضوع : الخبير


السلام عليكم و رحمة الله و بركاته

رمضان كريم للجميع

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

و لكن في هذا القسم و بسبب كثرة مواضيعه و أساليب الربط بقواعد البيانات يضيع المبتدئ و الذي يريد أن يتعلم من البداية

سنتعلم قواعد البيانات من خلال تصميم برنامج يحتوي على جميع الأدوات التي يمكنك ربط قواعد البيانات بها

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

نبدأ ؟؟

لغة البرمجة : 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]
و الذي من خلاله نجعل الـ DataGridView يقرئ قاعدة البيانات

إذا أضفنا بعض السجلات في قاعدة البيانات ستعرض هنا دعونا نجرب و لكن قبل ذلك دعونا نلقي نظرة على الكود في البرنامج



هل ترى هذا الخط الذي لدي لم أضعه في الكود الأول لأننا سنعرف حدث خاصا به بعد قليل

الأن نشغل البرنامج و نلاحظ



الأن دعونا نعرف هذا الحدث الذي أخبرتكم عليه

كود :
[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]

درسنا لم ينتهي يتبع ...
}}}}
تم الشكر بواسطة:
#2


تابع

سنتحدث الأن عن أماور الإضافة و الحذف و تحديث البيانات المدخلة سابقا و كل منها سأضعه في رد منفصل لزيادة الفهم

قبل البدء أريد من الجميع تغيير الحقل التالي في قاعدة البيانات

Number إلى Phone_Number

عملية الإضافة :

إن مبدأ الإضافة هو Insert Into أي نقوم بإدخال قيمة محددة في أحد حقول جدول ما في قاعدة بيانات و كوده لبرنامجنا هو


كود :
Try
Dim SavInto As New OleDb.OleDbCommand
Dim ConStr As String = _
"Provider=Microsoft.Jet.OLEDB.4.0; Data Source =" & _
Application.StartupPath & "\Database.mdb"
Dim Conn As New OleDbConnection(ConStr)
SavInto.Connection = Conn
SavInto.CommandType = CommandType.Text
SavInto.CommandText = "INSERT INTO Table1(Name,Phone_Number,Address,Mobile)" & _
"values ('" & TextBox4.Text & "','" & TextBox5.Text & "','" & TextBox6.Text & "','" & TextBox7.Text & "') "
Conn.Open()
SavInto.ExecuteNonQuery()
Conn.Close()
MsgBox("تمت عملية الاضافة والحفظ في قاعدة البيانات بنجاح")
 
Catch ex As Exception
Exit Sub
End Try
Dim frm As New Form1
Me.Hide()
frm.Show()
الكود عبارة عن عملية اتصال بسيطة جدا و لكننا عرفنا متغير حفظ السجلات على أنه نص سواء كتابة أو أرقام

بالنسبة للـ


كود :
[color=#000000][COLOR=#0000bb]SavInto[/color][color=#007700].[/color][color=#0000bb]CommandText [/color][color=#007700]= [/color][color=#dd0000]"INSERT INTO Table1(Name,Phone_Number,Address,Mobile)" [/color][color=#007700]& [/color][COLOR=#0000bb]_
[/COLOR][color=#dd0000]"values ('" [/color][color=#007700]& [/color][color=#0000bb]TextBox4[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]& [/color][color=#dd0000]"','" [/color][color=#007700]& [/color][color=#0000bb]TextBox5[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]& [/color][color=#dd0000]"','" [/color][color=#007700]& [/color][color=#0000bb]TextBox6[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]& [/color][color=#dd0000]"','" [/color][color=#007700]& [/color][color=#0000bb]TextBox7[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]& [/color][COLOR=#dd0000]"') "  
[/COLOR][color=#0000bb][/color][/COLOR]

هذا هو الكود الذي حدثتكم عنه ما بين القوسين في البداية هي اسماء جداول القاعدة أما القوسين في الاسفل هي مربعات النص كل مربع يرافق أحد الحقول بالترتيب أي الحقل الأول هو الـ Name يقابله مربع النص TextBox4 موضوع سهل صح ؟؟


كود :
[color=#000000][COLOR=#0000bb]Dim frm [/color][color=#007700]As New [/color][COLOR=#0000bb]Form1
Me[/COLOR][color=#007700].[/color][color=#0000bb]Hide[/color][COLOR=#007700]()
[/COLOR][color=#0000bb]frm[/color][color=#007700].[/color][color=#0000bb]Show[/color][COLOR=#007700]()  
[/COLOR][color=#0000bb][/color][/COLOR]
إن مشكلة هذه الطريقة أنها تحتاج إلى إعادة تشغيل البرنامج من جديد لكي تظهر القيم الجديدة و هنا قمنا بإعادة تحميل البرنامج لكي تظهر القيم الجديدة

يتبع في الرد التالي عن عملية الحذف
}}}}
تم الشكر بواسطة:
#3


اقتباس:
[TABLE="width: 100%"]
[TR]
[TD="class: alt2"]بارك الله فيك

حبذا لو اكملت [/TD]
[/TR]
[/TABLE]

و لو أنت بتأمر المهم الفائدة

تابع ...
عمليتي الحذف و التعديل على السجلات
إن فكرة الحذف هي أن نأخذ قيمة ما من أي سجل سواء كان الاسم أو الرقم أو العنوان حسب ما تراه أنت مناسب و سيقوم البرنامج بنفيذ الكود و بحذف كل ما في السجل إنطلاقا من القيمة التي اخترتها

الكود :


كود :
If MsgBox("هل تريد حذف السجل الحالي", MsgBoxStyle.OkCancel) = MsgBoxResult.Cancel Then
Exit Sub
End If
Dim SavInto As New OleDb.OleDbCommand
Dim DataAdapter1 As New OleDbDataAdapter(SQLstr, Conn)
SavInto.Connection = Conn
SavInto.CommandType = CommandType.Text
SavInto.CommandText = "DELETE FROM Table1 WHERE Address ='" & Trim(TextBox3.Text) & "'"
Conn.Open()
SavInto.ExecuteNonQuery()
DataSet1.Clear()
DataAdapter1.Fill(DataSet1, "Table1")
Conn.Close()
MsgBox("تمت عملية حذف السجل")
ChangePosition()
هذا الكود هو المهم


كود :
SavInto.CommandText = "DELETE FROM Table1 WHERE Address ='" & Trim(TextBox3.Text) & "'"
نلاحذ كيف دللنا البرنامج على حقل العنوان و سيعرف السجل الذي يريد حذفه من خلال المكتوب في مربع النص رقم ثلاثة يعني إذا تريد تعديلها عدل اسم الجدول و الحقل و رقم التكست تمام

<------------------------------------------->

الأن التعديل

أول شي ضيف زر جديد و خليه بجانب زر حفظ السجل و سمه حفظ التعديل

ليصبح الفورم بهذا الشكل



الأن ضع الكود التالي في زر تعديل السجل و هو المسؤول عن نقل كل ما في مربعات نصوص العرض إلى التعديل


كود :
TextBox4.Text = TextBox1.Text
TextBox5.Text = TextBox2.Text
TextBox6.Text = TextBox3.Text
TextBox7.Text = TextBox12.Text
إن التعديل قد يكون معقد بعض الشئ في حالتنا هنا يعني شوف الكود


كود :
Dim SavInto As New OleDb.OleDbCommand
Dim ConStr As String = _
"Provider=Microsoft.Jet.OLEDB.4.0; Data Source =" & _
Application.StartupPath & "\Database.mdb"
Dim Conn As New OleDbConnection(ConStr)
SavInto.Connection = Conn
SavInto.CommandType = CommandType.Text
SavInto.CommandText = "UPDATE Table1 SET Name = '" & Trim(TextBox4.Text) & "' , Phone_Number= '" & Trim(TextBox5.Text) & "' , Address= '" & Trim(TextBox6.Text) & "', Mobile= '" & Trim(TextBox7.Text) & "' WHERE Address ='" & TextBox3.Text & "'"
Conn.Open()
SavInto.ExecuteNonQuery()
Conn.Close()
MsgBox("تمت عملية الاضافة والحفظ في قاعدة البيانات بنجاح")
Dim frm As New Form1
Me.Hide()
frm.Show()
Button5.Visible = True
إن الكود يشبه قليلا كود الحفظ و لكن هنا مباشرة اسم الحقل و التكست الخاص به

إذا ما عليك سوى كتابة الكود مع تعديل ما ترغب به و ما تخصص برنامجك

إذا بقي لنا البحث إذا تحب تبدأ قليلا اكتب ما التالي في الليست الخاص بالكومبو

|اسم الشخص , رقم هاتف الشخص , عنوان الشخص , موبايل الشخص |

يتبع
}}}}
تم الشكر بواسطة:
#4
تابع

القطعة الأخيرة من قطع الأحجية

عملية البحث

مثل ما ذكرت في الرد السابق نقوم باضافة التالي للـ ComboBox الذي في الأخير نلاحظ











و الأن ندخل على زر البحث و نضع الكود التالي


كود :
Select Case ComboBox1.Text
Case "اسم الشخص"
On Error Resume Next
Dim MyRows() As DataRow = DataSet1.Tables("Table1").Select("Name LIKE '%" & Trim(TextBox9.Text) & "%'")
Dim FoundRows As DataTable = DataSet1.Tables("Table1").Clone
Dim dr As DataRow
For Each dr In MyRows
FoundRows.ImportRow(dr)
Next
DataGridView1.DataSource = FoundRows
TextBox1.DataBindings.Add("Text", DataSet1, "Table1.Name")
TextBox2.DataBindings.Add("Text", DataSet1, "Table1.Phone_Number")
TextBox3.DataBindings.Add("Text", DataSet1, "Table1.Address")
TextBox12.DataBindings.Add("Text", DataSet1, "Table1.Mobile")
Case "رقم الهاتف"
On Error Resume Next
Dim MyRows() As DataRow = DataSet1.Tables("Table1").Select("Phone_Number LIKE '%" & Trim(TextBox9.Text) & "%'")
Dim FoundRows As DataTable = DataSet1.Tables("Table1").Clone
Dim dr As DataRow
For Each dr In MyRows
FoundRows.ImportRow(dr)
Next
DataGridView1.DataSource = FoundRows
TextBox1.DataBindings.Add("Text", DataSet1, "Table1.Name")
TextBox2.DataBindings.Add("Text", DataSet1, "Table1.Phone_Number")
TextBox3.DataBindings.Add("Text", DataSet1, "Table1.Address")
TextBox12.DataBindings.Add("Text", DataSet1, "Table1.Mobile")
Case "عنوان الشخص"
On Error Resume Next
Dim MyRows() As DataRow = DataSet1.Tables("Table1").Select("Address LIKE '%" & Trim(TextBox9.Text) & "%'")
Dim FoundRows As DataTable = DataSet1.Tables("Table1").Clone
Dim dr As DataRow
For Each dr In MyRows
FoundRows.ImportRow(dr)
Next
DataGridView1.DataSource = FoundRows
TextBox1.DataBindings.Add("Text", DataSet1, "Table1.Name")
TextBox2.DataBindings.Add("Text", DataSet1, "Table1.Phone_Number")
TextBox3.DataBindings.Add("Text", DataSet1, "Table1.Address")
TextBox12.DataBindings.Add("Text", DataSet1, "Table1.Mobile")
Case "رقم موبايل الشخص"
On Error Resume Next
Dim MyRows() As DataRow = DataSet1.Tables("Table1").Select("’Mobile LIKE '%" & Trim(TextBox9.Text) & "%'")
Dim FoundRows As DataTable = DataSet1.Tables("Table1").Clone
Dim dr As DataRow
For Each dr In MyRows
FoundRows.ImportRow(dr)
Next
DataGridView1.DataSource = FoundRows
TextBox1.DataBindings.Add("Text", DataSet1, "Table1.Name")
TextBox2.DataBindings.Add("Text", DataSet1, "Table1.Phone_Number")
TextBox3.DataBindings.Add("Text", DataSet1, "Table1.Address")
TextBox12.DataBindings.Add("Text", DataSet1, "Table1.Mobile")
End Select

الكود طويل و لكنه تكرار فقط

مثل ما نلاحظ استعملنا استعملنا الـ Select Case لكي نتجنب الـ IF

و في الـ Case الأولى عندما يكون الكومبو على خيار اسم الشخص ينفذ الكود و المهم في الكود هو


كود :
Dim MyRows() As DataRow = DataSet1.Tables("Table1").Select("Address LIKE '%" & Trim(TextBox9.Text) & "%'")
إن هذا الكود يطابق ما يكتب التكست الخاص بالبحث بالحقل و لكن مثل ما تلاحظ يوجد Like ما هي

بعد وضع الـ Like يصبح البحث عام يعني إذا وضعت حرف واحد فقط يظهر جميع النتائج التي تحتوي على هذا الحرف


كود :
DataGridView1.DataSource = FoundRows
TextBox1.DataBindings.Add("Text", DataSet1, "Table1.Name")
TextBox2.DataBindings.Add("Text", DataSet1, "Table1.Phone_Number")
TextBox3.DataBindings.Add("Text", DataSet1, "Table1.Address")
TextBox12.DataBindings.Add("Text", DataSet1, "Table1.Mobile")

و في هذا الكود أولا عرضنا النتائج في الداتا غريد و بعد ذلك عرضنا النتائج في مربعات النص المسؤولة عن العرض في حال أردنا التعديل عليها أو حذفها

و بهذه الطريقة خلص البرنامج و لكن الموضوع ما خلص يوجد ملاحظات و البرنامج يمكنك تحميله من المرفقات


الملفات المرفقة
.rar   Phone.rar (الحجم : 97.51 ك ب / التحميلات : 791)
}}}}
تم الشكر بواسطة:
#5
موضوع اكثر من رائع

يثبت .....
Wink
متغيب قليلاً للدراسة Smile
}}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
Big Grin وداعا لملل كتابة الاكود الاضافة لقاعدة البيانات اكسس و سيكوال alims 14 4,898 10-09-16, 11:30 AM
آخر رد: assad
  كيفية تحزيم برنامج وتضمين معه قاعدة البيانات شرح بالصور مبرمج بلا حدود 30 14,752 20-07-16, 06:58 PM
آخر رد: ahmedfa71
Wink [مقال] وداعا لملل كتابة الاكود لعرض لقاعدة البيانات اكسس و سيكوال (الجزء الثانى) alims 1 1,018 02-06-16, 12:42 PM
آخر رد: CLARO
  طريقة تقسيم كمية عرض البيانات داخل الأداة ( DataGridView ) أو مايسمى بالـ ( Paging ) MR Dev Boody 4 2,002 02-06-16, 12:41 PM
آخر رد: CLARO
  وداعا لملل كتابة الاكود الاضافة لقاعدة البيانات اكسس و سيكوال alimse 3 1,568 02-06-16, 12:41 PM
آخر رد: CLARO
Lightbulb [نقاش] تحليل وتصميم قواعد البيانات ahmed saba 3 2,393 02-06-16, 12:39 PM
آخر رد: CLARO
  موقع ConnectionStrings الغني عن التعريف المليء باوامر الاتصال لقواعد البيانات وغبرها honest 1 224 02-06-16, 12:38 PM
آخر رد: CLARO
  الكامل في قواعد البيانات rinawi 13 5,114 02-06-16, 12:37 PM
آخر رد: CLARO
  مثال للعمليات علي قواعد البيانات مع الشرح mr_mgm 1 1,142 02-06-16, 12:34 PM
آخر رد: CLARO
  طريقة عمل النسخ الإحتياطى و إسترجاع البيانات بكل سهوولة MR Dev Boody 1 2,277 14-12-12, 11:36 AM
آخر رد: abdoawad

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم