منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : [عنوان معدل]ما سبب هذه المشكلة oledbexception was unhandled
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحكمه الله وبركاتوا

انا احاول ان اصمم قاعدة بيانات لسجل طلاب يتكون من رقم الطالب واسمه فقط وانا استخدم نسخة الفيجوال ستوديو 2012

ولكن واجهتني مشكله هي : oledbexception was unhandled وانه لا يمكن ايجاد الملف او مسار قاعدة البيانات لعرضها في DataGridView

مع العلم اني استخدمه في الكود الموفر الخاص بمايكروسوفت : Provider=Microsoft.Jet.OLEDB.4.0 واستخدم قاعدة بيانات Access 2010

والمشكله تظهر في هذا الكود : conn.open اي ان المتغير المسؤؤل عن فتح قاعدة البيانات لا يمكنه ايجاد ملف الاكسس , مع العلم اني حاولت كثير في ايجاد حل ولكن الكود الذي قمت بكتابته اعتقد انه صحيح والمسار ايضا صحيح .. فهل هناك خطاء في الكود او في اصدار الموفر الذي كتبته ام ان السبب هو خطاء في المسار ..

سوف ارفق الملف وارجو من لديه الخبره التعديل عليه وتوضيح الخطاء الذي ارتكبته مع جزيل الشكر ..

اليكم صورة الخطاء التي تظهر :


[ATTACH=CONFIG]3688[/ATTACH]


والملف في المرفقات ::
المشكله كلها تكمن هنا في هذا الكود


كود :
Dim ConStr As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source =" & Application.StartupPath & "\student.mdb"


هل هناك طريقة اخرى لكتابة المسار مع العلم ان هذا المسار الذي كتبته في البرنامج هو ان المسار يحدد بطبيعة ومكان تواجد الملف او قاعدة البيانات .. يعني انه لو نقلت الملف على جهاز اخر لن يتاثر المسار والبرنامج سوف يعمل بشكل طبيعي بدون اخطاء

ارجوووكم افيدوني ....Sad
السلام عليكم

بدل 4 الى 12

لان 4 لأكسس 2003
و12 لبقية الاصدارات

تنبيه: يرجى كتابة عنوان واضح يدل على المحتوى وكتابة الموضوع في قسمها الصحيح
تم حل المشكله بعد البحث والاستطلاع في موقع مايكروسوفت للدعم تحت بيئة الدوت نت

المشكله كانت هي في تحديد اصدار الموفر واي قاعدة بيانات يتم دعمها من خلال الموفر الذي توفره مايكروسوفت لقواعد البيانات

نلاحظ انني ف المثال السابق استخدمة الموفر الاصدار الرابع Provider=Microsoft.Jet.OLEDB.4.0


واستخدمة قاعدة بيانات Access 2010 لذلك حدث مع خطاء اونه لا يمكن ايجاد مسار قاعدت البيانات وهو ف الحقيه ان الموفر الذي هو من الاصدار الرابع لا يدعم الاكسس 2010 . اذا كيف تم حل هذه المشكله .. تابع معي اخي الكريم ::

هناك عدة موفرات قدمتها مايكروسوفت تحت بيئة الدوت نت التي من خلالها يمكن الاتصال بقاعدة البيانات

Provider=Microsoft.Jet.OLEDB.3.0
Provider=Microsoft.Jet.OLEDB.3.5
Provider=Microsoft.Jet.OLEDB.4.0

هذه الاصدارات من الموفرات تدعم قواعد البيانات (97,2000,2003)
والتي تنتهي بصيغة Databasename.mdb نلاحظ ان هذه الاصدارات صيغتها هي mdb وهذه المشكله التي واجهتني اي ان قاعدة البيانات التي قمت بالاتصال بها هي اكسس 2010 والتي تنتهي صيغتها بــ accdb حيث انها لا تدعم الموفر provider=Microsoft.Jet.OLEDB..4.0

تم حل المشكله التي واجهتها وكان مسار الاتصال بقاعدة البيانات كالتالي ::

PHP كود :
Dim ConStr As String "Provider=Microsoft.Jet.OLEDB.4.0;" _
    
"Data Source =" Application.StartupPath "\student.mdb" 

وذلك بعد ان قمت بتحويل قاعدة البيانات من 2010 الى 2003
ويمكن ايضا حلها بدون تحويل قاعدة البيانات والتي هي 2010 ويكون الكود كالتالي ::

PHP كود :
Dim ConStr As String "Provider=Microsoft.Jet.OLEDB.12.0;" _
    
"Data Source =" Application.StartupPath "\student.accdb" 

نلاحظ ان اصدار الموفر هو Provider=Microsoft.Jet.OLEDB.12.0
وان قاعدة البيانات Access 2010 هي student.accdb
وهذا الموفر يدعم اصدارات الاكسس 2007 و 2010

اذا اصبت ف من الله
واذا اخطأت ف مني والشيطان

والحمد الله رب العالمين ..