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

web.config & database

مغلق
بدأه yadoo86 في 12 نوفمبر 2005 · 9 رد · 854 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم يا أخواني الكريم

كان لدي سؤال في web.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <appSettings>
  <add key="ConnectionString" value="Data Source=C:\Iraqcom\DB\Iraqcom.mdb;Provider=Microsoft.Jet.OLEDB.4.0" />	
  <add key="iraqcom.ConnectionString" value="Data Source=C:\Iraqcom\DB\Iraqcom.mdb;Provider=Microsoft.Jet.OLEDB.4.0" />
	</appSettings>
  <system.web>

سوف ترون أن database في c: أوكي في هة حالة لا توجهني أي مشاكل على كومبيوتري و لكن أذا رفعت الويب سايت للسيرفر فأنة يعطيني رسالة خطاء تقول خطاء في عملية أتصال ب database , وهذا أمر طبيعي لأنة لا يوجد درايف c في سيرفر , فما هو الكود لازم وضعة بدلا من full path !!!!!!

أرجوا المساعدة , ظروري ..............!

winter-main.jpg

6179.gif

#2

ضعها في sub folder داخل الfolder الخاص بالموقع كله و في هذه الحالة ستكتب فقط في الWeb.Config اسم ال Sub folder بدون اي ذكر لتفاصيل مكانه الحقيقي

و اذا احتجت في أي مكان في ال Code استخدام الFull Path يمكنك استخدام Server.MapPath فهي تحول الVirtual Path الى Physical Path

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#3

طيب أخي كريم ممكن تكتب ما هو كود , أعرف أن أسألة مبيتداء لا تنتهي

winter-main.jpg

6179.gif

#4
<appSettings>
  <add key="ConnectionString" value="Provider=Microsoft.Jet.OLEDB.4.0; Data Source="/>
  <add key="Path" value="database\db.mdb"/>
	</appSettings>

ستجد هنا أني فصلت اسم الDatabase نفسه في قيمة مختلفة عن باقي الConnection String فهذا يعطيك بعض المرونة في حالة أنك تريد استخدام Server.MapPath فبفرض أنك قمت بقراءة كلاً من الkeys في 2 string variables الأول اسمه ConnStr و الاخر اسمه Path

string myConnectionString = ConnStr + Server.MapPath(Path);

و هكذا تحصل على الConnection String كاملاً

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#5

مشكور أخي bashmohandes على تعبك معاي , بس سؤال أخير أن تكرمت!!

هل يوجد حل أخر لكي لا أضيف server.mappath الى أكواد جميع صفحات لأن عدد صفحات الموقع كبير جدا و موقع مكتمل , أي أقصد هل يوجد أي كود بحث يحتاج فقط الى تغير في web.config , مع جزيل شكر

أرجوا الرد

winter-main.jpg

6179.gif

#6

هل تقوم بعمل الConnection في كل الصفحات :o؟

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#7

لم أفهم , هل تقصد أني عملت لكل صفحة connection drive , فا جواب نعم

winter-main.jpg

6179.gif

#8

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

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#9

بسيطة... الحل هو كما يلي:

حمل صفحة بسيطة فيها الكود التالي:

Response.Write(Server.MapPath("YOUR_DATEBASE_FILE_PATH"));

سيطبع لك مسار ملف قاعدة البيانات على المخدم ... بعدها انسخ المسار وضعه ضمن الـ web.config

بدلاً عن مسار الـ C...

طبعاً أخي مع ذلك أنا مع استغراب الأخ bashmohandes يعني فعلاً هل تقوم بالاتصال في كل صفحة :o ؟؟؟؟؟

#10

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

بالنسبة لإجراء اتصال في كل صفحة ليس هذا الذي يدعو للاستغراب ، بل تعريف جملة الاتصال في كل صفحة هذا هو الغريب

طيب دعنا نطبق بعض مباديء الـ OOP في هذا الأمر لنقم بتعريف فئة (كلاس) جديد ، ولنسمه مثلاً Database ثم نجعل له خاصية ولنسمها مثلاً ConnectionString

Public Class Database
    Private AppSettings As System.Configuration.AppSettingsReader = New System.Configuration.AppSettingsReader

    Public Shared Readonly Property ConnectionString() As String
        Get
    dim strRetValue , strDBPath As String
            strDBPath = HttpContext.Current.Request.MapPath(CType(AppSettings .GetValue("PathKey", GetType(System.String)), String))
strRetValue = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & strDBPath 
            Return ConnectionStringValue
        End Get
    End Property
End Class

يجب أن تلاحظ أن هذا المتغير PathKey هو الذي قمت بتعريف في ملف web.config كما ذكره لك الإخوة بحيث تعرف فيه مسار قاعدة البيانات بدون ذكر امتداد كامل بل تعرف مكانها بالنسبة للموقع وليس المسار الفيزيائي

الآن يمكنك استدعاء هذه الخاصية مباشرة من أي مكان في برنامجك هكذا

dim strCon as string = database.connectionstring

هذا الموضوع مغلق.

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