الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

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

بدأه الحلفاوي في 12 فبراير 2014 · 2 رد · 1,145 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

 

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

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

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

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

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

 

..

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

 

 

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

 

اخوكم

#2

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

لو عملت نقرة يمينة على القاعدة في المشروع ثم 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  القديم الذي يحوي مسار القاعدة كاملا ..

تم تعديل هذه المشاركة بواسطة حسام الشامي في 17 فبراير 2014 في 11:54 — السبب: تصحيح إملائي

1

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#3

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

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…