PDA

View Full Version : تغییر Connection string در Settings.settings



mhsmity
یک شنبه 05 آبان 1392, 17:09 عصر
سلام.
هنگام لود فرم وقتی می خوام Connection string تغییر بدم با خطای زیر مواجع می شم.
Properties.Settings.Default.Database1ConnectionStr ing = "رشته اتصال جدید";
خطا:

'WindowsFormsApplication3.Properties.Settings.Data base1ConnectionString'
cannot be assigned to -- it is read only
چطوری Connection string رو هنگام لود برنامه تغییر دهم؟
جواب :
public BasijMain()
{
InitializeComponent();
Properties.Settings.Default["MdfPincerConnectionString"] = smity.StrConnction;
}

MdfPincerConnectionString: اسم همون رشته اتصالی که در سیتینگ برنامه ذخیره هستش
smity.StrConnction: رشته اتصال جدید.

امیر مهرشاد
یک شنبه 05 آبان 1392, 17:24 عصر
سلام.
هنگام لود فرم وقتی می خوام Connection string تغییر بدم با خطای زیر مواجع می شم.
Properties.Settings.Default.Database1ConnectionStr ing = "رشته اتصال جدید";
خطا:

'WindowsFormsApplication3.Properties.Settings.Data base1ConnectionString'
cannot be assigned to -- it is read only

چطوری Connection string رو هنگام لود برنامه تغییر دهم؟

بنظر من دوست عزیز بهترین روش برای اینکار اینه که رشته کانکشنتو از توی برنامه یا بیرون برنامت قبل از وصل شدن به بانکت بریزی توی یک فایل Txt و کنار برنامت قرار بدی خوبی این کار اینه که اگر یجایی خواستی برنامت تحت کلاینت سرور هم اجرا بشه براحتی دیتابیستو منتقل میکنی توی سرور و فقط فایل تکستو ویرایش میکنی - پیش بینی اینجور مسائل در برنامه میتونه خیلی از مشکلات رو تضمین کنه
البتهمسائل امنیتی هم باید مد نظرتون باشه که در اینجا هم مدیر سرور باید متضمن تامین امنیت دیتابیستون باشد

mhsmity
یک شنبه 05 آبان 1392, 17:26 عصر
بنظر من دوست عزیز بهترین روش برای اینکار اینه که رشته کانکشنتو از توی برنامه یا بیرون برنامت قبل از وصل شدن به بانکت بریزی توی یک فایل Txt و کنار برنامت قرار بدی خوبی این کار اینه که اگر یجایی خواستی برنامت تحت کلاینت سرور هم اجرا بشه براحتی دیتابیستو منتقل میکنی توی سرور و فقط فایل تکستو ویرایش میکنی - پیش بینی اینجور مسائل در برنامه میتونه خیلی از مشکلات رو تضمین کنه
البتهمسائل امنیتی هم باید مد نظرتون باشه که در اینجا هم مدیر سرور باید متضمن تامین امنیت دیتابیس باشد
از توجه شما ممنونم
ولی من داخل برنامه از دیتا سیت های زیادی استفاده کردم راحترین کار این هستش که رشته اتصال داخل سیتینگ رو تغییر بدم آیا راه حلی دارین

امیر مهرشاد
یک شنبه 05 آبان 1392, 17:56 عصر
ببین دوست عزیز اون چیزی که بنظر من میرسه اینه که یه تیبیل جدایی برای ذخیره تنظیمات کانکشنت داشته باشی و یک متغیر بولین هم داشته باشی که فقط مثلا از ده تا رشته استرینگت اونی که true هست رو برگردونه و اینکار رو میتونی با فرمت بگیری مثلا این رشته رو مد نظر بگیرید که قراره دیتابیس مکانش تغیر کنه یا ....


Data Source=. ;AttachDbFilename="D:\barname nevis\Source & Setup\Bus\Setup Bus Action\copy to folder 2\DB.mdf";Integrated Security=True

یک فرم درست کن که چهار تا شی پارامتر های بالا رو از مدیر یا کاربر بگیره

مثلا تکس باکس Data Source = . یا لوکال
تکس باکس مسیر جدید (AttachDbFilename)= برگشت شی openfiledialog یا رشته حاوی مسیر دیتابیس که بصورت دستی تنظیم میکنید

و تکس باکس Integrated Security = true یا false میتونه باشه

و خرین پارامتر هم داشتن یوزر و پسورد یا استفاده از خود امنیت ویندوز که با یک چک باکس پیاده سازیش کنید

خب حالا اگر از ده تا رشته ای که ذخیره شده بخوای یکیش همیشه دیفالت باشه باید 9 تا فیلد بولین جدولتون رو false کنید

امیدورام متوجه شده باشید

mhsmity
یک شنبه 05 آبان 1392, 19:17 عصر
public BasijMain()
{
InitializeComponent();
Properties.Settings.Default["MdfPincerConnectionString"] = smity.StrConnction;
}