السلام عليكم و رحمة الله و بركاته،
عند تثبيت البرنامج عند جهاز العميل، فإنه يتم وضع ثلاث ملفات app.config، واحد في مجلد البرنامج في program files و الثاني في سطح المكتب و هو خاص بإختصار البرنامج على سطح المكتب و الثالث في قائمة start.
هذه الملفات تحتوي على جمل الإتصال الخاصة بالبرنامج، المشكلة إذا شغلت البرنامج من سطح المكتب و قمت بتعديل جملة الإتصال فإن التعديل سيتم فقط في الملف الموجود على سطح المكتب و لن يتم تطبيق التغييرات على الملفين الآخرين.و نفس الأمر إذا شغلت البرنامج من قائمة start أو من مجلد program files.
كيف أستطيع تطبيق التغييرات في جملة الإتصال على الملفات الثلاثة في نفس الوقت؟؟
مشكلة الأخرى:
بعد تغيير جملة الإتصال فإن البرنامج لا يشعر بالتغيير إلا إذا قمت بإغلاقه و تشغيله مرة أخرى.. كيف يمكن حل هذه المشكلة؟
هذا كود تعديل جمل الإتصال في البرنامج:
Configuration myConfig = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None );
//
if (myConfig.ConnectionStrings.ConnectionStrings["orient"] == null)
{
ConnectionStringSettings orient_con = new ConnectionStringSettings("orient", "Data Source=" + textBox1.Text + "\\sqlexpress;Initial Catalog=Orient_Services;Integrated Security=False;User ID=sa;Password=11111", "System.Data.SqlClient");
//
ConnectionStringsSection csSection = myConfig.ConnectionStrings;
csSection.ConnectionStrings.Add(orient_con);
myConfig.Save(ConfigurationSaveMode.Full, true);
}
else
{
ConnectionStringsSection csSection = myConfig.ConnectionStrings;
csSection.ConnectionStrings["orient"].ConnectionString = "Data Source=" + textBox1.Text + "\\sqlexpress;Initial Catalog=Orient_Services;Integrated Security=False;User ID=sa;Password=11111";
myConfig.Save(ConfigurationSaveMode.Modified , true);
}و هذا ملف app.config:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > <section name="orient_services.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" /> </sectionGroup> </configSections> <connectionStrings> <add name="orient" connectionString="Data Source=.\sqlexpress;Initial Catalog=Orient_Services;User ID=sa;Password=123456" providerName="System.Data.SqlClient" /> </connectionStrings> <system.windows.forms jitDebugging="true " /> </configuration>