سؤال

على ما يبدو (MSDN) أحيانا OleDbConnection.ResetState() لا يفعل شيئا ، حتى إذا فشل الاتصال OleDbConnection.الدولة سوف لا يزال يتم تعيين لفتح.أنا أبحث عن أفضل حل لهذا ، حتى عندما تحقق اتصال الدولة يمكنني تجنب رفع الاستثناءات (طالما اتصال لم الفاشلة بين الماضي تحقق الاستخدام محاولة).

هل هناك شيء أفضل من إرسال "عديمة الفائدة" sql في كل مرة فقط لمعرفة ما إذا كان يتم طرح استثناء?كيف يمكنك التأكد من الاتصال تفتح قبل كنت في الواقع استخدامه ؟

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

المحلول

في هذه الحالة أود أن تفعل ما يلي :

  1. لا يكلف نفسه عناء التأكد إذا كان الاتصال هو "حقا" فتح قبل استخدامه :وسوف يكون معظم الوقت على أي حال ، سوف يجنبنا الكثير من الفائدة roundtrips إلى الملقم
  2. ولكن تحقق أي استثناء في كل مرة كنت تستخدم اتصال (إنشاء مساعد طرق تجنب نسخ/لصق هنا)
  3. إذا كان لديك استثناء ، ثم إرسال الخاص بك "غير مجدية" بيان للتحقق من اتصال قاعدة البيانات "الحقيقي" الدولة.أود أن تفعل ذلك لأنه نوع من الاستثناءات التي يمكن الحصول عليها عند الاتصال إلى الملقم المفقودة في بعض الأحيان يمكن أن يكون من المستغرب جدا (اعتمادا على ما يحدث في الوقت ينقطع الاتصال)

ويساعد هذا الأمل.

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