خطأ في اتصال MYSQL من خلال الدوت نت


سأتعامل مع هذا الخطأ لا يمكن تحويل الكائن من DBNull إلى أنواع أخرى. أثناء فتح الاتصال في asp.net

ما حاولت:

لقد حاولت تغيير برنامج تشغيل الشبكة من MYSQL Connector NET 8.0 إلى MYSQL Connector NET 8.2.0 لكن لم ينجح الأمر. في وقت سابق كنت أعمل بشكل جيد، والآن يعود الخطأ

الحل 1

DBNull هو نوع خاص: فهو يمثل “قيمة فارغة” في عمود قاعدة البيانات الفارغة. عندما تقوم بإصدار طلب SELECT على قاعدة البيانات، يتم إرجاع أي صفوف متطابقة تحتوي على قيمة SQL NULL كمثيل لـ فئة DBNull[^]

على الرغم من أنها تمثل قيمة NULL في قاعدة البيانات، إلا أنها ليست نفس القيمة الخالية في لغة الترميز الخاصة بك – لا يمكنك إرسالها مباشرة إلى أي نوع آخر.
أقترح كتابة طريقة تحويل عامة مشابهة لما يلي:

ج#
public static T ConvertDBValue<T>(object o)
    {
    if (o == null || o == DBNull.Value)
        {
        return default(T);
        }
    else
        {
        return (T)o;
        }
    }

وقم باستدعاء ذلك لكل قيمة قاعدة بيانات تقوم بمعالجتها.

コメント

タイトルとURLをコピーしました