منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
ماهي آلية عمل |DataDirectory| - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : ماهي آلية عمل |DataDirectory| (/showthread.php?tid=11370)



ماهي آلية عمل |DataDirectory| - starosta - 09-02-15

لعمل برنامج يعمل من أي مسار داخل الجهاز تميدا لعمل ملف 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>



RE: ماهي آلية عمل |DataDirectory| - starosta - 09-02-15

جميل جدا ..
هي تشير للمسار الحالي .. إذن كان يجب أن تعمل عند نقل ملف البرنامج لمكان آخر لكنها في جهازي وجهاز غيري لا تعمل إلا على سطح المكتب !!