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

نسخة كاملة : ماهي آلية عمل |DataDirectory|
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
لعمل برنامج يعمل من أي مسار داخل الجهاز تميدا لعمل ملف setup .. قمت داخل ملف app.config بكتابة مسار قاعدة البيانات database.mdf تحت المسار

كود :
|DataDirectory|\database.mdf

وحسب فهمي أن |DataDirectory| تعني المسار الحالي .. أي نفس المسار الذي يوجد فيه الملف التنفيذي .. وعمل البرنامج بشكل طبيعي عندما وضعت فولدر البرنامج بأكمله على سطح المكتب ..
لكن عندما أنقل الفولدر بكل محتوياته إلى مكان آخر .. ((driver D)) مثلا .. لا يقرأ قاعدة البيانات مع أنها موجودة داخل الفولدر ولم يتغير شئ ..
أريد شرح لآلية عمل |DataDirectory| .. وكيف أستطيع كتابة مسار يجعل البرنامج يقرأ من داخل قاعدة البيانات مهما كان مسار فولدر البرنامج .. علما بأن البرنامج يعمل بشكل جيد في أي جهاز عند وضعه على سطح المكتب فقط ..

المسارات الكاملة ..

كود :
<connectionStrings>
   <add name="database.My.MySettings.databaseConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\database.mdf;Integrated Security=True;Connect Timeout=30;User Instance=False" providerName="System.Data.SqlClient"/>
 </connectionStrings>

كود :
 <appSettings>
   <add key="database" value="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\databasels.mdf;Integrated Security=True;Connect Timeout=30;User Instance=False"/>
   <add key="LogFileName" value="database.txt"/>
   <add key="LogPath" value="C:\cLogsdatabase\"/>
   <add key="ClientSettingsProvider.ServiceUri" value=""/>
 </appSettings>
جميل جدا ..
هي تشير للمسار الحالي .. إذن كان يجب أن تعمل عند نقل ملف البرنامج لمكان آخر لكنها في جهازي وجهاز غيري لا تعمل إلا على سطح المكتب !!