منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[VB.NET] استفسار بخصوص Dispose() - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [VB.NET] استفسار بخصوص Dispose() (/showthread.php?tid=28962)



استفسار بخصوص Dispose() - dubai.eig - 11-03-19

السلام عليكم ورحمة الله

حبيت استفسر  بخصوص 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()


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

وشكرا لكم


RE: استفسار بخصوص Dispose() - أبوبكر سويدان - 11-03-19

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


RE: استفسار بخصوص Dispose() - حريف برمجة - 11-03-19

وعليكم السلام ورحمة الله وبركاته ،،

الأفضل استخدام 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 متكفل بكل شئ من إغلاق وتفريغ من الذاكرة


RE: استفسار بخصوص Dispose() - dubai.eig - 12-03-19

(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

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

الحمدالله