PDA

View Full Version : تغییر نام سرور در فایل app.config



ali_mnkt
یک شنبه 11 مرداد 1388, 12:54 عصر
با سلام

من از data source استفاده کردم و connection String برنامه رو در فایل app.config ذخیره کردم

البته چون برنامه من تحت شبکه است و نام سرور در نصب های برنامه در مکان های مختلف

تغییر می کنه من می خوام یه text box بذارم که کاربر بتونه در نصب اولیه برنامه نام سرور رو

وارد کنه . خوب حالا من با چه کدی می تونم نام سرور که به صورت defult در بخش

connection string در فایل app.config هست تغییر بدم ؟

behzadk
یک شنبه 11 مرداد 1388, 13:20 عصر
یکم اینو تغییر بدی مشکلت حل میشه


public string getconnectionstrings()
{

ConnectionStringSettingsCollection connectionstring = ConfigurationManager.ConnectionStrings;
string temp1 = "";
foreach (ConnectionStringSettings connection in connectionstring)
{

string connectionstringname = connection.Name;
string cnnstring = connection.ConnectionString;
string providername = connection.ProviderName;
temp1 = cnnstring;
}
return temp1;

}

ali_mnkt
یک شنبه 11 مرداد 1388, 22:22 عصر
مرسی دوست عزیز از کمکت

با این کد فقط می شه اطلاعات رو از app.config خوند حالا چطور می شه تغیییراتی رو در

آن اعمال کرد تا برای همیشه اطلاعات تغییر کرده ذخیره بشه ؟

noroozifar
چهارشنبه 27 آبان 1388, 08:35 صبح
;
کسی نمی تونه کمک کنه ؟
کسی نمی تونه کمک کنه تا من هم استفاده کنم

davood110
چهارشنبه 27 آبان 1388, 10:44 صبح
سلام

فكر كنم با اين مشكلتون حل بشه.
جاهايي كه كنترلها از مقدار default در app.config استفاده مي كنند به اين صورت عمل ميشه كه در اصل از يك فانكشن در كلاس Setting.Designer.cs به نام DB Name'ConnectionString' (مثلا اگه نام بانك اطلاعاتي MyDB باشه اسم فانكشن MyDBConnectionString خواهد بود) استفاده مي كنه كه در اين فاكشن ميره از app.config مي خونه ، حالا اگه شما اين مقدار را تغيير بديد و از يه جاي ديگه بخونيد ديگه كاري به app.config نخواهد داشت ، من اين كار را تو يه پروژه انجام دادم و مقدار ConnectionString را از يه فايل XML خوندم و كاملا جواب داد.
اين فانكشن را در Project سرچ كني پيداش مي كني

ennovation
چهارشنبه 27 آبان 1388, 11:57 صبح
سلام
بعد از گرفتن مقادیر از textbox میتونی اینکار رو بکنی


textBox1.Text = "Server=testsql;Database=myDatabase;User ID=Test;Password=abc;";
string newConnect ="<add key='NewConnectionString' value=' "+ textBox1.Text + " '/>";
StringBuilder newFile = new StringBuilder();
string temp = "";
string[] file = File.ReadAllLines(@"../../App.config");
foreach (string line in file)
{
if (line.Contains("ConnectionString"))
{
temp = line.Remove(0);
temp = newConnect;
newFile.Append(temp + "\r\n");
continue;
}

newFile.Append(line + "\r\n");
}

File.WriteAllText(@"../../App.config", newFile.ToString());

به جای علامت " از علامت ' استفاده کن.
حالا باید برنامه رو ببندی و دوباره اونو اجرا کنی تا با کانکشن جدید به بانک متصل بشی .
ولی اگه نمیخوای که اینکار رو بکنی و میخواهی که کاربر به کارش ادامه بده میتونی این کد رو هم ضمیمه کنی . اینجوری کانکشن جدید تعریف میشه و دفعه بعد که کاربر برنامه رو اجرا کنه همه چیز نرمال پیش میره .


System.Configuration.Configuration config =
ConfigurationManager.OpenExeConfiguration(Configur ationUserLevel.None);

config.AppSettings.Settings.Add("NewConnectionString",

newConnect + " ");
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");

noroozifar
یک شنبه 01 آذر 1388, 09:52 صبح
خواهش می کنم یک مثال انجام شده برای تغییر فایل app.config زمینه کنید؟ هرکار می کنم موفق نمی شوم

noroozifar
سه شنبه 03 آذر 1388, 08:15 صبح
کسی نمی تواند کمک کند حرفه ای ها کمک کنند این مشکل را حل کنند فقط بک فایل دارای مثال app.config

ARA
پنج شنبه 17 دی 1388, 18:02 عصر
ازproject Explorer /proprties/settings.settings برای تعریف متغیر هاتو استفاده کنین
حالا خوندنش


string sc=Properties.Settings.Default.SeletedColor;

و نوشتنش



Properties.Settings.Default.SeletedColor= "Blue";
Properties.Settings.Default.Save();