نوشته شده توسط
p.yazdkhasti
سلام
من با دوستمون کاملا مخالفم. در دات نت به Assembly با نام System.Configuration یک Refrence دهید و سپس از کد زیر استفاده کنید.
var config = ConfigurationManager.OpenExeConfiguration(Configur ationUserLevel.None);
var conName = "MyConnectionToSqlServer";
ConnectionStringSettings con = null;
if (null != (con = config.ConnectionStrings.ConnectionStrings[conName]))
{
con.ConnectionString = "Data Source=TestDB;Initial Cataloge=Test;User ID =TestUser;Password=Pass";
config.Save(ConfigurationSaveMode.Modified);
}
در استفاده از این کد به نکات زیر دقت کنید:
1- در کد خود باید Namespace مربوطه را Import نمایید.
using System.Configuration;
2- در صورتی که این کد را در یک نرم افزار Windows Application و یا Console Application تست می کنید باید برای دیدن نتایج اجرای کد نرم افزار را بعد از Build شدن به صورت مستقیم در محلی که نتیجه Build قرار دارد اجرا نمایید و نتیجه را در فایل Config موجود در همان محل مشاهده کنید.
3- این کد در نرم افزار های تحت وب نیز قابل استفاده است.
4- فایل Config نمونه برای این کد به صورت زیر است:
<configuration>
<connectionStrings>
<add name="MyConnectionToSqlServer" connectionString="TextToChange"/>
</connectionStrings>
</configuration>
از روش شما استفاده کردم و خیلی خوب کار کرد ، شبه کد زیر رو هم دارم که کار کد شما رو انجام میده
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(Configur ationUserLevel.None);
config.AppSettings.Settings.Remove("ConnectionStri ng");
config.AppSettings.Settings.Add("ConnectionString" , "Data Source=XP-7,1433;Initial Catalog=NoorAutomation;Integrated Security=True");
config.Save(ConfigurationSaveMode.Full);
ConfigurationManager.RefreshSection("appSettings") ;
اما مشکل اینجا است که تغییرات در app .conf اعمال نمیشه . ، یعنی تنظیمات سایق رو داره . چی طوری باید refresh کرد ؟