تقييم الموضوع :
  • 1 أصوات - بمعدل 5
  • 1
  • 2
  • 3
  • 4
  • 5
درس بسيط لعملية الإضافة والتعديل والبحث والحذف - Visual Basic.net 10 وMS Access
#1
السلام عليكم ورحمة الله

أقدم لكم درساً بسيطاً للتعامل مع قواعد البيانات MS Access من خلال تطبيق بـVisual Basic.

في البداية نغير اسم الـForm الافتراضي للمشروع الجديد إلى frmMain، ونضع عليه:

Text Box: ونسمّه txtSearch
4 Buttons: ونسميهم: btnNew جديد، وbtnEdit تعديل، وbtnDelete حذف، وbtnClose إغلاق.
DataGridView: وسمّه dgvList.

قم بإنشاء قاعدة بيانات نوع mdb باسم saveDate.mdb
وخزنها في المجدل Debug

والآن:

قم بإضافة Module للمشروع باسم: functions
واكتب داخله الكود التالي:
كود :
Imports System.Data.OleDb

Module functions
    Public Con As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Application.StartupPath & "\saveDate.mdb")
End Module

وهنا قمنا باستدعاء الفضاء System.Data.OleDb الخاص بالتعامل مع قواعد البيانات من النوع MS Access.

في برمجة حدث التحميل للـForm اكتب الكود التالي:
كود :
Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ' تجهيز الداتاقريدفيو
        With dgvList
            .DataSource = Nothing
            .Rows.Clear()
            .ColumnCount = 3

            .Columns(0).HeaderText = "ID"
            .Columns(0).Width = 30
            .Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
            .Columns(0).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter

            .Columns(1).HeaderText = "الاســـــــم"
            .Columns(1).Width = 150
            .Columns(1).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter

            .Columns(2).HeaderText = "تاريخ الميلاد"
            .Columns(2).Width = 110
            .Columns(2).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
            ' لجعل الخلية تعرض التاريخ فقط
            .Columns(2).DefaultCellStyle.Format = "d"
        End With
        LoadData()
    End Sub


وهذا الكود خاص بتجهيز الـDataGridView برمجياً، ومن ثم تعبئتها من قاعدة البيانات من خلال استدعاء الروتين LoadData ، وفيما يلي برمجته:

كود :
Public Sub LoadData()
        Dim LSQL As String = "select * from TheTable order by ID"
        Dim LAdapter As New OleDbDataAdapter(LSQL, Con)
        Dim LDataSet As New DataSet
        Dim RowsCount As Integer
        Dim i As Integer

        ' مسح الداتاقريدفيو من قيم سابقة محتملة
        dgvList.Rows.Clear()

        If Con.State = ConnectionState.Closed Then
            Con.Open()
            LAdapter.Fill(LDataSet, "LoadingData")
            RowsCount = LDataSet.Tables("LoadingData").Rows.Count
            If RowsCount = 0 Then
                dgvList.Rows.Clear()
                LDataSet.Reset()
                Con.Close()
                Exit Sub
            Else
                dgvList.Rows.Add(RowsCount)

                ' Now: fill DGV with data
                For i = 0 To RowsCount - 1
                    With dgvList
                        .Rows(i).Cells(0).Value = LDataSet.Tables("LoadingData").Rows(i).Item("ID")
                        .Rows(i).Cells(1).Value = LDataSet.Tables("LoadingData").Rows(i).Item("TheName")
                        .Rows(i).Cells(2).Value = LDataSet.Tables("LoadingData").Rows(i).Item("TheBirthDate")
                    End With
                Next
                LDataSet.Reset()
                Con.Close()
            End If
        Else
            LAdapter.Fill(LDataSet, "LoadingData")
            RowsCount = LDataSet.Tables("LoadingData").Rows.Count
            If RowsCount = 0 Then
                dgvList.Rows.Clear()
                LDataSet.Reset()
                Con.Close()
                Exit Sub
            Else
                dgvList.Rows.Add(RowsCount)

                ' Now: fill DGV with data
                For i = 0 To RowsCount - 1
                    With dgvList
                        .Rows(i).Cells(0).Value = LDataSet.Tables("LoadingData").Rows(i).Item("ID")
                        .Rows(i).Cells(1).Value = LDataSet.Tables("LoadingData").Rows(i).Item("TheName")
                        .Rows(i).Cells(2).Value = LDataSet.Tables("LoadingData").Rows(i).Item("TheBirthDate")
                    End With
                Next
                LDataSet.Reset()
                Con.Close()
            End If
        End If
    End Sub

وكما نلاحظ، فهذا الروتين Public (عام) يمكن استدعاؤه حتى من خارج هذا الـform، وخاصة عند إجراء العمليات على قاعدة البيانات، بحيث يتم تحديث محتويات الـDtataGridView فور إنهاء العملية.


قم بكتابة الكود التالي في برمجة زر الإغلاق:

كود :
Me.Close
الرد }}}
تم الشكر بواسطة: Amir_Alzubidy , الوادي , سعود , سعود , princelovelorn , 3booody


الردود في هذا الموضوع
درس بسيط لعملية الإضافة والتعديل والبحث والحذف - Visual Basic.net 10 وMS Access - بواسطة أبوبكر سويدان_mybb_import4719 - 19-06-13, 10:26 PM


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


يقوم بقرائة الموضوع: