سؤال

اعتدت على إغلاق داسئدري مفتوح باستخدام Try/Catch/Block أخيرًا:

 Dim dr As MySqlDataReader = Nothing
 Try
   dr = DBConnection.callReadingStoredProcedure("my_sp")

 Catch ex As Exception
   ' the caller will handle this
   Throw ex
 Finally
   If dr IsNot Nothing Then dr.Close()
 End Try

لكنني أعتقد أنه يجب أن يكون أكثر نظافة (وأسرع إلى حد ما) لاستخدام الكلمة الرئيسية "استخدام" VB:

Using dr As MySqlDataReader = DBConnection.callReadingStoredProcedure("my_sp")

End Using
'   dr is surely disposed, but is it closed? 

هل واجهة Idispose (المطلوبة باستخدام) تنفيذ إغلاق على DataReader؟

هل كانت مفيدة؟

المحلول

سيتم التخلص من الكائن. نعم ، هذا يغلق DataReader.

نصائح أخرى

سيتم إغلاق القارئ ، لكن هذا ليس ضروريًا لاتصال قاعدة البيانات الأساسية لأنه يتم إدارته باستخدام تجمع اتصال ADO.NET. تحقق من هذه الإجابة لمزيد من المعلومات: لن يغلق C# mysqlconnection

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top