PDA

View Full Version : یک مثال کامل از تغییر دادن app.confug



noroozifar
پنج شنبه 28 آبان 1388, 10:54 صبح
سلام
یک فرم دارم که تنظیمات ارتباط با بانک را انجام می دهد
textbox اول نام سرور را می گیره
textbox دوم نام دیتابیس را می گیرد
textbox سوم نام کاربری
textbox چهارم کلمه رمز را دریافت می کند

حالا می خواهم بعد از اینکه کاربر این تنظیمات را انجام داد تنظیمات مورد نظر در app.config ذخیره شده تا لازم نباشد کاربر دوباره انجام دهد
من فقط app.config را ایجاد کردم و کدهای زیر را داخلش نوشتم :

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="Cstr" value="Data Source=RASPINA;Initial Catalog=Northwind;Integrated Security=True"/>
</appSettings>
</configuration>و بعد داخل برنامه با این کد از آن استفاده می کنم :

SqlConnection sq = new SqlConnection(ConfigurationSettings.AppSettings["Cstr"]);
try
{
MessageBox.Show("ok");
}
catch
{
}دیگر نمی دانم باید برای ذخیره تغییرات چه کدی بنویسم برنامه هم تحت شبکه کار می کند
اگر لطف کنید یک مثال آماده با سورس برام بذارید ممنون می شوم

ennovation
پنج شنبه 28 آبان 1388, 12:39 عصر
سلام
بعد از گرفتن مقادیر از textbox میتونی اینکار رو بکنی



string server= TextBox1.Text;
string data = TextBox2.Text;
string user = TextBox3.Text;
string pass = TextBox4.Text;
string newConnect = "<add key='NewConnectionString' value='Server=" + server + "; Database=" + data + ";User ID=" + user + "; Password=" + pass + ";'/>";
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
شنبه 30 آبان 1388, 08:22 صبح
درسته من همین کارو کرد ه ام اما من با قسمت دوم مشکل دارم

System.Configuration.Configuration config =
ConfigurationManager.OpenExeConfiguration(Configur ationUserLevel.None); این کلاس برام نمیاد system.configuration.."configuration" نمی دانم چه کار باید انجام بدم

noroozifar
شنبه 30 آبان 1388, 10:36 صبح
کسی نمی تواند کمک کند ؟

ennovation
شنبه 30 آبان 1388, 20:20 عصر
سلام

واسه اینکه مشکلت حل بشه باید Reference مورد نظر رو به پروژه خودت الحاق کنی
منظورم اینه که در داخل پروژه روی پوشه References رایت کلیک کنی و بعد گزینه Add Reference رو انتخاب کن و بعد از لیست داده شده System.Configuration رو انتخاب کن

موفق باشی