كما اثار الأخ Dr. Misho الموضوع
كثير من الأخوة يتسائلون عن طريقة عمل ال connection لقاعدة البيانات حتى يتسنى لهم تشغيل البرنامج على آى جهاز يحمل Server يختلف أسمه وuser مختلف أيضاً و PassWord أيضا مختلف عن الذى صمم عليه المشروع وعلى رآى الاخ القائل مش معقول هاخد السورس كود معى عند كل عميل علشان اصلح ال Connection .
وطرحت حلول كثيرة ولكنها غير فعالة من وجهة نظرى والحل الأمثل هو فى ال Application Configuration File
الم يتسائل أحد ما دور هذا الملف فى فى البرنامج , سنتحدث فقط عن دوره فى عملية ال Connection
فهذا الملف يؤمن الأتصال بقاعدة البيانات ويمكنك تعديل الأتصال فى آى وقت حتى لو لم يكن معك ال Source Code
سنرى كيف
أولاُ يجب عليك أدراج هذا الملف فى مشروعك
الطريقة
1- من ال Right Click على أسم المشروع فى Solution Explorer
2- ثم أختار Add ثم New Item… كما انك ستضيف فورم جديد
3- أختار Application Configuration واترك أسمه الأفتراضى app.config ثم Enter
4- سينتج ملف Xml هذا هو كما فى الشكل
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.diagnostics>
<sources>
<!-- This section defines the logging configuration for My.Application.Log -->
<source name="DefaultSource" switchName="DefaultSwitch">
<listeners>
<add name="FileLog"/>
<!-- Uncomment the below section to write to the Application Event Log -->
<!--<add name="EventLog"/>-->
</listeners>
</source>
</sources>
<switches>
<add name="DefaultSwitch" value="Information" />
</switches>
<sharedListeners>
<add name="FileLog"
type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
initializeData="FileLogWriter"/>
<!-- Uncomment the below section and replace APPLICATION_NAME with the name of your application to write to the Application Event Log -->
<!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> -->
</sharedListeners>
</system.diagnostics>
</configuration>وهو الذى سنضيف فيه عملية ال Connection وليس فيها آى تعقيدات
ال Connecttion الذى ستتم أضافته هو نفسه الذى تضيفه فى المشروع ولكن تزيد عليه عبارات بسيطة تتماشى مع ال xml file
فأذا كان مثلاً الConnection الذى يعمل فى مشروعك كالتالى
"Data Source=SAMMER;Initial Catalog= Northwend;User ID=sa;Password=123"
فتضع هذا ال Connection كما هو فى ال App.config بالطريقة الأتية
فى ملف App.Config بعد العبارة <configuration> مباشرةً تضع ال Connection كالتالى
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="NrWend" connectionString="Data Source=SAMMER;Initial Catalog=Northwend;User ID=sa;Password=123"
providerName="System.Data.SqlClient" />
</connectionStrings>كل اللى عملته أنك أضفة بلوك <connectionStrings> بعد بداية البلوك <configuration> مباشرةً ثم أضفت أسم لل Connection الخاص بك وهو” <add name=”NrWend وهذا الأسم مهم جداً لأنه هو الذى ستستدعى الأتصال به من داخل البرنامج وهنا ننتهى ً من ال App.Config
طريقة ربط الأتصال ده فى البرنامج تتم عن طريق المكتبه System.configuration فيجب عليك أرفقها بال References الخاص بالمشروع
وتكون طريقة ربط ال Connection بالبرنامج كالتالى
أولاً عمل
Imports System.Configuration
Using connection As New SqlConnection (ConfigurationManager.ConnectionStrings("NrWend").Connectio nString)
‘type your code here
End Usingوبهذه الطريقة يتم الأتصال بقاعدة البيانات وهى تماثل الطريقة التقليدية لعمل أتصال من داخل البرنامج التى كانت كالتالى
Dim Cnn As New SqlConnection Cnn.ConnectionString = _ "Data Source=SAMMER;Initial Catalog=Northwend;User ID=sa;Password=123" Cnn.Open() Cnn.Close()
وبهذا انهينا الأتصال ويتم التعامل معه من داخل البرنامج
الأهم من كل ده أزاى أعدل الأتصال بعد عمل Setup للبرنامج عند العميل دون أستخدام ال Source Code::
بعد عمل Setup للبرنامج على جهاز العميل وأردت تغيير Connection
كل ما عليك هو الوصول إلى الدليل المحمل فيه البرنامج وتبحث عن ملف xml سيكون أسمه بأسم البرنامج كالتالى
لو كان أسم البرنامج TyrCompany سيكون الملف اسمه TyrCompany.exe ولكن من نوع xml
يمكنك فتحه بأى محرر كتابه مثل Notepad ستجده مطابق تماماً للملف الاول App.config تعدل فيه ال Connection حسب ما يتوافق على جهاز العميل وتعمل Save وتخرج وشغل البرنامج وشوف النتيجه.
ويمكنك مراجعة البرنامج فى الرابط ده لمعرفة عمل ملف App.config وطريقة الأتصال
رابــــــــــــــــــــــــــط البرنامج
أرجوا ان اكون قد وفقت فى توصيل المعلومة وأسألكم الدعاء لوالدتى والمسلمين جمبعاً بالحمه والمغفرة ......