View Full Version : سوال در مورد app.config و Settings.Settings
mohsen_metn
چهارشنبه 27 بهمن 1389, 12:31 عصر
سلام
اول بگم خیلی جستجو کردم ولی جواب سوالاتم رو پیدا نکردم
1- من مجبورم در بعضی مواقع اطلاعات موجود در app.config و Settings.Settings را در زمان اجرای برنامه عوض کنم.
مثل کانکشن استرینگ و ...
این کار رو باید به چه صورت انجام بدهم
mohsen_metn
چهارشنبه 27 بهمن 1389, 13:35 عصر
لطفا کمک کنید
hamid67fathi
چهارشنبه 27 بهمن 1389, 15:42 عصر
سلام
دوست عزيز اگه بيشتر توضيح بديد حتماً ميتونيم کمک کنيم.
يک راه استفاده از ديرکتيو هاست ، لينک زير توضيح کاملی در اين موضوع داره.
http://msdn.microsoft.com/en-us/library/yt3yck0x(v=VS.71).aspx
البته تغيير در کانفيگ ها از نظر برنامه نويسی منطقی و صحيح است چون يکی از فيچر های دات net هست.
mohsen_metn
چهارشنبه 27 بهمن 1389, 18:55 عصر
سلام
دوست عزيز اگه بيشتر توضيح بديد حتماً ميتونيم کمک کنيم.
يک راه استفاده از ديرکتيو هاست ، لينک زير توضيح کاملی در اين موضوع داره.
http://msdn.microsoft.com/en-us/library/yt3yck0x(v=VS.71).aspx
البته تغيير در کانفيگ ها از نظر برنامه نويسی منطقی و صحيح است چون يکی از فيچر های دات net هست.
با تشکر از راهنمایی و توجه اتان
مشکل من در رابطه با عوض کردن مقادیز یاست که در config ذخیره کرده ام مثل کانکشن استرینگ و یا مقادیر دیگری که در ان تعریف کرده ام
hamid67fathi
چهارشنبه 27 بهمن 1389, 23:44 عصر
کاری که شما انجام ميديد از نظر دات نتی صحيح هست.
به عنوان مثال اگه شما دوتا کانکشن استرينگ داريد :
constr = "value";
constr1 = "value";
با در نظر گرفتن اينکه شما در برنامه خودتون constr رو استفاده ميکنيد ، تنها با تغيير نام دو مورد بالا در فايل کانفيگ ، ميتونيد به مقصودتون برسيد.
اگر هنوز هم قانع نشد ، به توضيحاتی که در MSND در مورد داتنت و قابليت هاش داده شده مراجع کنيد.
mohsen_metn
پنج شنبه 28 بهمن 1389, 10:44 صبح
کاری که شما انجام ميديد از نظر دات نتی صحيح هست.
به عنوان مثال اگه شما دوتا کانکشن استرينگ داريد :
constr = "value";
constr1 = "value";
با در نظر گرفتن اينکه شما در برنامه خودتون constr رو استفاده ميکنيد ، تنها با تغيير نام دو مورد بالا در فايل کانفيگ ، ميتونيد به مقصودتون برسيد.
مشکل اینجاست که اطلاعات کانکشن دوم مثل نام کامپیوتر و ... در زمان اجرا از کاربر گرفته میشه (به یک دلیل خاص) و همان کانکشن استرینگی که در کانفیگ وجود دارد باید تغییر بکند
hamid67fathi
جمعه 29 بهمن 1389, 19:54 عصر
خوب اين که ساده تر ميکنه کار رو ، بعد از گرفتن مقادير ، آنها رو در
setting ذخيره کن.
بعد هر وقت هم لازم داشتی ازش استفاده کن.
reza2012
شنبه 30 بهمن 1389, 01:11 صبح
یه کلاس بنویس که ورودی بگیره ورودی اون نام کامپیوتر و هر چیزی که باید تغییر کنه باشه بعدش بعد از اون کلاس به عنوان دیتا اکسس استفاده کن و هر فراخوانی از بانک رو به وسیله ی اون انجام بده اینطوری مشکلت حل میشه
javad_r_85
شنبه 30 بهمن 1389, 08:59 صبح
سلام..
اولا بر اساس تجربه میگم سعی کن از Settings استفاده نکنی چون دردسر داره فکر کنم کد زیر بتونه کارت را را ه بندازه
global::WindowsFormsApplication1 .Properties .Settings s=new WindowsFormsApplication1.Properties.Settings();
MessageBox.Show (s.name) ;
s.name = "javad";
MessageBox.Show(s.name);
بعد این که اصلا چرا می خوایید کانکشن استرینگ را تغییر دهید اگر اونا درست تعریف کنید نیاز به تغییر ندارد به عنوان مثال:
SqlConnection con =new SqlConnection (@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Shop.MDF;Integrated Security=True");
vof.ir
سه شنبه 08 شهریور 1390, 01:54 صبح
سلام
امیدوارم که فهمیده باشم سوالت را و اینکه جوابم به درد بخور باشه
من میخواستم یک کلید را در فایل app.config
مقدارش تغییر بدهم
این تابع را نوشتم
public static bool SetfrmSplashScreenImagePath(string path)
{
bool result = false;
if ( path == null )
{
path = "";
}
try
{
string sPattern = @"^(([a-zA-Z]:|\\)\\)?(((\.)|(\.\.)|([^\\/:\*\?""\|<>\. ](([^\\/:\*\?""\|<>\. ])|([^\\/:\*\?""\|<>]*[^\\/:\*\?""\|<>\. ]))?))\\)*[^\\/:\*\?""\|<>\. ](([^\\/:\*\?""\|<>\. ])|([^\\/:\*\?""\|<>]*[^\\/:\*\?""\|<>\. ]))?$";
if ( Regex.IsMatch(path, sPattern) || path == "" )
{
if ( ConfigurationManager.AppSettings.AllKeys.Contains("imagepath") )
{
Configuration config = ConfigurationManager.OpenExeConfiguration(Configur ationUserLevel.None);
config.AppSettings.Settings["imagepath"].Value = path;
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");
}
}
result = true;
}
catch ( Exception )
{
result = false;
}
return result;
}
vof.ir
سه شنبه 08 شهریور 1390, 02:00 صبح
سلام
امیدوارم که فهمیده باشم سوالت را و اینکه جوابم به درد بخور باشه
من میخواستم یک کلید را در فایل app.config
مقدارش تغییر بدهم
این تابع را نوشتم
public static bool SetfrmSplashScreenImagePath(string path)
{
bool result = false;
if ( path == null )
{
path = "";
}
try
{
string sPattern = @"^(([a-zA-Z]:|\\)\\)?(((\.)|(\.\.)|([^\\/:\*\?""\|<>\. ](([^\\/:\*\?""\|<>\. ])|([^\\/:\*\?""\|<>]*[^\\/:\*\?""\|<>\. ]))?))\\)*[^\\/:\*\?""\|<>\. ](([^\\/:\*\?""\|<>\. ])|([^\\/:\*\?""\|<>]*[^\\/:\*\?""\|<>\. ]))?$";
if ( Regex.IsMatch(path, sPattern) || path == "" )
{
if ( ConfigurationManager.AppSettings.AllKeys.Contains("imagepath") )
{
Configuration config = ConfigurationManager.OpenExeConfiguration(Configur ationUserLevel.None);
config.AppSettings.Settings["imagepath"].Value = path;
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");
}
}
result = true;
}
catch ( Exception )
{
result = false;
}
return result;
}
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.