تقييم الموضوع :
  • 1 أصوات - بمعدل 5
  • 1
  • 2
  • 3
  • 4
  • 5
[نقاش] الأمر using والتخلص من المتغيرات
#16
الكود التالي يوضح الشكل المبدئي للكلاس الذي تحدثت عنه
عليك أن تضيف له أي من الدوال التي تريدها
و يمكنك هنا ان تستخدم جملة Using و أنت مطمئن تماما أن Connection يتم اغلاقها

كود :
Imports System.Data.SqlClient

Public Class DisposableConnection
   Implements IDisposable

   Private _disposed As Boolean
   Private _conn As SqlConnection
   Private _command As SqlCommand

   Public Sub New(connectionString As String)
       _conn = New SqlConnection(connectionString)
       _command = New SqlCommand
   End Sub

   Public ReadOnly Property Connection As SqlConnection
       Get
           Return _conn
       End Get
   End Property

   Public ReadOnly Property Command As SqlCommand
       Get
           Return _command
       End Get
   End Property

   Private Sub Flush()
       _conn.Close()
   End Sub

   Private Sub CleanSqlObjects()
       Flush()
       If _conn IsNot Nothing Then
           _conn.Dispose()
           _conn = Nothing
       End If
       If _command IsNot Nothing Then
           _command.Dispose()
           _command = Nothing
       End If
   End Sub

   Protected Overridable Sub Dispose(disposing As Boolean)
       If _disposed Then
           Return
       End If

       If disposing Then
           CleanSqlObjects()
       End If
       _disposed = True
   End Sub

   Public Sub Dispose() Implements IDisposable.Dispose
       Dispose(True)
       ' GC.SuppressFinalize(Me)
   End Sub

End Class

الكود التالي يوضح كيف يتم استخدام الكلاس
طبعا يمكنك ان تكتب اي إجراءات او تكتب اي دوال و تضيفها للكلاس كيفما شئت
أو تقوم بتعديل الكود كيفما شئت للتأكد من أن Connection تم إغلاقها
أنا فقط كتبت لك الفكرة المبدئية للكلاس


كود :
  Dim s As String ' read connection fromm ConfigurationManager
       Using conn As New DisposableConnection(s)
           ' do something
       End Using
ملحوظة أخيرة
أعلم جيدا أن ما سوف أقوله سيزعج بعض الإخوة هنا
لكن انا ضد استخدام SQL او MS Access و أري أن كتابة بعض الكلاسات لحفظ البيانات باستخدام Stream أفضل كثيرا من الإعتماد علي قواعد البيانات التقليدية لأنه سيوفر الكثير من الصداع و سيعطي المبرمج قدرة أكبر علي التحكم بالبيانات كيفما يشاء
لكن الكثير من المبرمجين غالبا ما تختار الحلول الأسهل عموما وكما يقول المثل الشعبي  عندنا في مصر كل شيخ و له طريقة
الرد }}}
تم الشكر بواسطة: samerselo , samerselo


الردود في هذا الموضوع
RE: الأمر using والتخلص من المتغيرات - بواسطة silverlight - 20-05-16, 02:31 PM


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


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