.NET MySQL هل "استخدام" يغلق DataReader؟
-
01-10-2019 - |
سؤال
اعتدت على إغلاق داسئدري مفتوح باستخدام 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
لا تنتمي إلى StackOverflow