شاطر
اذهب الى الأسفل
عدد المساهمات : 134
تاريخ التسجيل : 08/10/2012
معاينة صفحة البيانات الشخصي للعضو

التعامل مع قواعد البيانات من الألف إلى الياء | شرح بالتفصيل و الصور part2

في الثلاثاء أكتوبر 09, 2012 12:22 pm
سنتحدث الأن عن أماور الإضافة و الحذف و تحديث البيانات المدخلة سابقا و كل منها سأضعه في رد منفصل لزيادة الفهم

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

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()
الكود عبارة عن عملية اتصال بسيطة جدا و لكننا عرفنا متغير حفظ السجلات على أنه نص سواء كتابة أو أرقام

بالنسبة للـ
الكود:

SavInto.CommandText = "INSERT INTO Table1(Name,Phone_Number,Address,Mobile)" & _
"values ('" & TextBox4.Text & "','" & TextBox5.Text & "','" & TextBox6.Text & "','" & TextBox7.Text & "') " 
[code]
هذا هو الكود الذي حدثتكم عنه ما بين القوسين في البداية هي اسماء جداول القاعدة أما القوسين في الاسفل هي مربعات النص كل مربع يرافق أحد الحقول بالترتيب أي الحقل الأول هو الـ Name يقابله مربع النص TextBox4  موضوع سهل صح ؟؟
[/code]
[code]
Dim frm As New Form1
Me.Hide()
frm.Show() 
[/code]
إن مشكلة هذه الطريقة أنها تحتاج إلى إعادة تشغيل البرنامج من جديد لكي تظهر القيم الجديدة و هنا قمنا بإعادة تحميل البرنامج لكي تظهر القيم الجديدة

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

[code]
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()
[/code]
هذا الكود هو المهم

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

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

الأن التعديل

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

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

http://www.vb4arab.com/vb/uploaded/3...1282164697.gif

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

[code[
 
 
 
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()

عملية البحث

مثل ما ذكرت في الرد السابق نقوم باضافة التالي للـ 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")
و في هذا الكود أولا عرضنا النتائج في الداتا غريد و بعد ذلك عرضنا النتائج في مربعات النص المسؤولة عن العرض في حال أردنا التعديل عليها أو حذفها

و بهذه الطريقة خلص البرنامج
عدد المساهمات : 1
تاريخ التسجيل : 01/07/2015
معاينة صفحة البيانات الشخصي للعضو

رد: التعامل مع قواعد البيانات من الألف إلى الياء | شرح بالتفصيل و الصور part2

في الأحد يوليو 12, 2015 7:03 am
الموضوع مفيدا جدا عاشت الايادي ...انا استفاديت منه هوايه
الرجوع الى أعلى الصفحة
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى