منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : استفسار بخصوص Dispose()
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله

حبيت استفسر  بخصوص Dispose()

هل هيه مهمه في جميع الاكواد الخاصه باقاعدة البيانات 

او ما لها اهميه 

او اهميتها في اماكن معينه

انا استخدمها في كل عمليه خاصه بقاعدة البيانات قبل اغلاق الاتصال او بعده

هل هذا صحيح او ياثر على البرنامج 

كمثال
كود :
    Dim cmd As New SQLiteCommand(String.Format("UPDATE info{0} SET WSJTPath=@WSJTPath WHERE id=@id ", strcallbk), con)
       If con.State <> ConnectionState.Open Then con.Open()
       cmd.Parameters.AddWithValue("@WSJTPath", WSJTPath.Text)
       cmd.Parameters.AddWithValue("@id", Getid)
       cmd.ExecuteNonQuery()
       cmd.Dispose()
       con.Close()


او

كود :
       Dim cmd As New SQLiteCommand(String.Format("UPDATE info{0} SET usernameBox=@usernameBox, passwordBox=@passwordBox, qrzcomd=@qrzcomd WHERE id=@id ", strcallbk), con)
       If con.State <> ConnectionState.Open Then con.Open()
       cmd.Parameters.AddWithValue("@usernameBox", usernameBox.Text)
       cmd.Parameters.AddWithValue("@passwordBox", passwordBox.Text)
       cmd.Parameters.AddWithValue("@qrzcomd", qrzcomdC)
       cmd.Parameters.AddWithValue("@id", Getid)


       cmd.ExecuteNonQuery()
       cmd.Dispose()
       con.Close()


بس حبيت استفسر هل صحيح وجود الكود في كل عمليه او لا

وشكرا لكم
في حالة تكرار استخدام العنصر، فمن المهم عمل Dispose له في كل مرة.
وعليكم السلام ورحمة الله وبركاته ،،

الأفضل استخدام Using مثال :

كود :
'الصيغة
Using cmd As New SQLiteCommand

End Using

 Using cmd As New SQLiteDataAdapter

End Using

 Using cmd As New SQLiteDataReader


End Using

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Using cmd As New SQLiteCommand(String.Format("UPDATE info{0} SET usernameBox=@usernameBox, passwordBox=@passwordBox, qrzcomd=@qrzcomd WHERE id=@id ", strcallbk), con)

      If con.State <> ConnectionState.Open Then con.Open()
      cmd.Parameters.AddWithValue("@usernameBox", usernameBox.Text)
      cmd.Parameters.AddWithValue("@passwordBox", passwordBox.Text)
      cmd.Parameters.AddWithValue("@qrzcomd", qrzcomdC)
      cmd.Parameters.AddWithValue("@id", Getid)


      cmd.ExecuteNonQuery()
       con.Close()

End Using

هنا End Using متكفل بكل شئ من إغلاق وتفريغ من الذاكرة
(11-03-19, 03:31 PM)أبوبكر سويدان كتب : [ -> ]في حالة تكرار استخدام العنصر، فمن المهم عمل Dispose له في كل مرة.

تسلم يعني كلامك ان ما ياثر على عمل البرنامج  يعني يبطئ او شي اخر

شكرا لك استاذي ومنكم نستفيذ Rolleyes

(11-03-19, 04:25 PM)حريف برمجة كتب : [ -> ]وعليكم السلام ورحمة الله وبركاته ،،

الأفضل استخدام Using مثال :

كود :
'الصيغة
Using cmd As New SQLiteCommand

End Using

 Using cmd As New SQLiteDataAdapter

End Using

 Using cmd As New SQLiteDataReader


End Using

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Using cmd As New SQLiteCommand(String.Format("UPDATE info{0} SET usernameBox=@usernameBox, passwordBox=@passwordBox, qrzcomd=@qrzcomd WHERE id=@id ", strcallbk), con)

      If con.State <> ConnectionState.Open Then con.Open()
      cmd.Parameters.AddWithValue("@usernameBox", usernameBox.Text)
      cmd.Parameters.AddWithValue("@passwordBox", passwordBox.Text)
      cmd.Parameters.AddWithValue("@qrzcomd", qrzcomdC)
      cmd.Parameters.AddWithValue("@id", Getid)


      cmd.ExecuteNonQuery()
       con.Close()

End Using

هنا End Using متكفل بكل شئ من إغلاق وتفريغ من الذاكرة


جميل ردك استفدة منه كثير

راح يتم التغيير والعمل على 
Using

Rolleyes

بارك الله فيكم ومنكم نستفيذ ونتعلم 

الحمدالله