• 0
Esmat_Halfa

العمل على قاعدة بيانات أكسس واحدة في المشروع

سؤال

السلام عليكم ورحمة الله

 

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

الان لدي الملف الاساسي موجود داخل مجلد البرنامج وآخر داخل الbin

- حاولت مسح احدهما والعمل بالآخر يخرج عنه رسالة خطأ

- بعض التعديلات التي اقوم بها على قاعدة البيانات لا تظهر لي على الداتاسيت وبرغم اعادة التهيئة بالويزارد فلا اعلم على منهم تحدث التغييرات

- بعض الاحيان اجد ايقونة التصال بالاكسس ذات علامة القفل بجانب الملف الذي في مجلد الbin وتارة في مع الملف الاصلي الذي انشأته

 

..

ضللت الطريق تماما مالذي يحدث بالضبط وكيف لي الاستغناء عن احد الملفين بحيث اكون على بينة على اي ملفي الاكسس اعمل

 

 

اشكركم ... يمكنكم استيضاح السؤال اكثر فلا مانع

 

اخوكم

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

2 إجابة على هذا السؤال .

  • 0

السلام عليكم ...

لو عملت نقرة يمينة على القاعدة في المشروع ثم properties  ثم Copy To outputDirectory   ستلاحظ أن القيمة هي copy always  أو copy if new  اي سيتم نسخ القاعدة من ملفات المشروع إلى مجلد الــ debug  عند كل مرة تقوم فيها ببناء المشروع , و بالتالي لن ترى البيانات التي أدخلتها عند التنفيذ السابق ...و هذه هي مشكلتك .. أي لديك نسختين من القاعدة , واحدة في ملفات المشروع , و يتم العمل عليها في الــ desgin time  و الأخرى في المجلد debug  و يتم العمل عليها في الــ Runtime  و يتم استبدالها بتلك التي في ملفات المشروع عند كل عملية build  كما ذكرنا (إذا كانت copy always) ...

الحل : أنا أتبع الطريقة التالية :

  1. بعد أن نأخذ مشروع جديد , لا تضع القاعدة في ملفات المشروع , بل ضعها في أي مكان خارج مجلد المشروع , و يفضل في المجلد الـذي يحوي الــ solution  مباشرة (كي تعرف مكانها مستقبلا), يعني ضعها بجوار الملف (ArabTeamCS001.sln) مباشرة (لو كان اسم الـ solution  هو ArabTeamCS001) .... يعني لا تضيف القاعدة للبروجيكت ..
  2. في النافذة server explorer  اعمل نقرة يمينية على Data connections  ثم خذ Add Connection  حدد النوع (Microsoft Access Database File (OLE DB)) ثم اختر ملف قاعدة البيانات السابق ..
  3. في المشروع قم بإضافة DataSet .. ثم اسحب الجداول من Server Explorer  إلى الــ DataSet   ,لو سألك هل تريد إضافة الملف للمشروع , اختر No  .
  4. بهذه الطريقة , يمكن العمل على نفس القاعدة في الـتصميم والتنفيذ ..

لتوزيع التطبيق للعملاء:

  1. في المشروع في النافذة Solution Explorer  , افتح المجلد Properties  ثم افتح الملف (Settings.settings) ستجد داخله الــ connection string  بالشكل :
    Provider=Microsoft.Jet.OLEDB.4.0;Data Source="D:\my_documents\Visual Studio 2008\Projects\ArabTeamCS001\Warehouses_System.mdb"

    لاحظ انه وضع كامل مسار القاعدة ... نغيره إلى :

    Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Warehouses_System.mdb;Persist Security Info=True
  2. rebuild  لكامل المشروع ..

  3. نضع قاعدة البيانات مع الملف التنفيذي في المجلد Debug  او Release  حسب نمط العمل ..

  4. نوزع :)

بالنسبة للقفل , لا تلقي له بالا ... فهو يعني أن ملف القاعدة مفتوح ..

لو أردت العمل على تطوير المشروع مرة أخرى ... تعيد الــ Connection string  القديم الذي يحوي مسار القاعدة كاملا ..

تم تعديل بواسطه حسام الشامي
تصحيح إملائي
1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اشكرك جداً اخي الشامي ... بوركت وجوزيت خير

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .