تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مدخل عملي لـ N-Tier - التطبيقات المُتعددة الطبقات
#10
الحمد لله جت المشاركة المستقلة بعد طول غياب


كما أوضحنا سابقاً هناك 3 دوال عامة Save , Update , Delete
و يقابلها 3 دوال خاصة _Save , _Update , _Delete

و انتهينا من بناء دوال الكائن التي تقوم بالإضافة و الحذف و التعديل .

و تبقى علينا عملية عرض البيانات
بعبارة أخرى احضار البيانات من مصدرها و تحمليها على الكلاس كقيم تظهر في الخصائص .



لهذا نحن بحاجة للدالة الخاصة _Select و التي تعود بكائن من نوع DataTable .

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


كما ذكرنا سابقاً فإن الدالة سيكون شكلها كالتالي :

PHP كود :
Private Function _Select(ByVal ID As Integer) As DataTable

        Dim dsv 
As New DataTable
        
Try
            
Dim SelCmd As New SqlClient.SqlCommand
            SelCmd
.CommandType CommandType.StoredProcedure
            SelCmd
.CommandText "sp_Select_ContactNumber"
            
SelCmd.Parameters.Add("@Id"SqlDbType.BigInt).Value ID

            SelCmd
.Connection Connection
            Dim dAdapter 
As New SqlClient.SqlDataAdapter(SelCmd)

            
dAdapter.Fill(dsv)

        Catch 
ex As Exception

        End 
Try

        Return 
dsv
    End 
Function 


و الآن كيف سنحمل البيانات من الجدول إلى الكلاس ؟

و الجواب هو عند الخاصية ID

للتذكير كان الكود الموجود تحت الخاصية ID هو :

PHP كود :
Property ID() As Integer
        Get
            
Return _ID
        End Get
        Set
(ByVal value As Integer)
            
_ID value
        End Set
    End Property 



و الآن نحن بحاجة لإضافة بعض الأسطر التي ستفحص القيمة المدخلة للخاصية ثم تستدعي الدالة الخاصة _Select لأجل إحضار البيانات ثم تعبئة الخصائص بالقيمة العائدة من الدالة .

سيكون الكود المكتوب عند الخاصية ID كالتالي :


PHP كود :
Property ID() As Integer
        Get
            
Return _ID
        End Get
        Set
(ByVal value As Integer)

            
'   نعمل استعلام من قاعدة البيانات و نعبئ الكلاس بالقيم
            Dim dTable As DataTable = Me._Select(value)

            ' 
إذا كان عدد السجلات أكثر من صفر بعبارة أخرى إذا كان هناك سجلات
            
If dTable.Rows.Count 0 Then
                
' إقرأ القيمة من الجدول و ضعها في الخاصية
                Me._ID = Integer.Parse(dTable.Rows(0).Item("ID").ToString)
                Me._Type = Integer.Parse(dTable.Rows(0).Item("Type").ToString)
                Me._Number = dTable.Rows(0).Item("Number").ToString
                Me._PersonID = Integer.Parse(dTable.Rows(0).Item("PersonID").ToString)
            End If


        End Set
    End Property 


و الآن ....

انتهينا من طريقة جلب البيانات و عرضها على الكلاس (كخصائص للكلاس) .



و نفس الكلام على الكلاس Person ، نضيف تحت الخاصية ID الكود التالي :

Property ID() As Integer
Get
Return _ID
End Get
Set(ByVal value As Integer)

' نعمل استعلام من قاعدة البيانات و نعبئ الكلاس بالقيم
Dim dTable As DataTable = Me._Select(value)

' إذا كان عدد السجلات أكثر من صفر بعبارة أخرى إذا كان هناك سجلات
If dTable.Rows.Count > 0 Then
' إقرأ القيمة من الجدول و ضعها في الخاصية
Me._ID = Integer.Parse(dTable.Rows(0).Item("ID").ToString)
Me._Name = dTable.Rows(0).Item("Name").ToString
Me._Age = Integer.Parse(dTable.Rows(0).Item("Age").ToString)
Me._Area = dTable.Rows(0).Item("Area").ToString
Me._Job = dTable.Rows(0).Item("Job").ToString
End If


End Set
End Property

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

الحمد لله الذي بنعمته تتم الصالحات ،


الملفات المرفقة
.rar   2008-07-31-PhoneBook.rar (الحجم : 37.32 ك ب / التحميلات : 70)
http://www.elfouadsoft.com
mohamed_tegara@yahoo.com
الرد }}}
تم الشكر بواسطة:


الردود في هذا الموضوع
مدخل عملي لـ N-Tier - التطبيقات المُتعددة الطبقات - بواسطة senior - 04-10-12, 04:34 PM


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


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