PDA

View Full Version : تغییر ConnectionString های درونی در حالت Runtime



bsflasher
شنبه 26 خرداد 1386, 08:22 صبح
وضعیت کنونی :
در برنامه ای از ConnectionString های ویژوال استودیو استفاده شده است که اکنون نیاز است بنابه انتخاب کاربر در زمان RunTime تغییر کند. بعنوان مثال تنها نام بانک عوض شود . این ConnectionString ها در فایل app.config ذخیره می شوند و VS آنها را به صورت ReadOnly درنظر میگیرد.
مشکل :
با توجه به اینکه برای شکل دهی و تسریع کار طراحی گریدها ( که بسیار زیاد هستند ) باید از این نوع کانکشن ها استفاده کرد (برنامه اکنون کاملا بر این اساس است) ، چطور میتوان این مقدار ReadOnly را در حالت Runtime تغییر داد ؟؟؟

مطالب پیدا شده :
مطالب زیر حاصل روزها جستجو هستند، البته من برنامه را در محیط ویندوزی طراحی میکنم و نه وب و زبان کار من هم VB 2005 می باشد.


http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=681967&SiteID=1

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=111291&SiteID=1

http://codebetter.com/blogs/peter.van.ooijen/archive/2006/08/11/Change-a-database-connection-string-from-code.aspx

http://www.codeproject.com/vb/net/RuntimeConnectionWizard.asp

sh
شنبه 26 خرداد 1386, 17:58 عصر
یک شی از نوع کانکشن برنامه تعریف کن و براحتی هر پارامترش رو تغییر بده . بگردی قبلا کدش رو نوشتم

bsflasher
یک شنبه 27 خرداد 1386, 20:10 عصر
اشیاء کانکشنی که شما فرمودید ، با بعضی پارامترهای ویژوال استودیو یکسان نمیشن . اما من راه حل کاملتری پیدا کردم که واقعا طلاست . این تابع رو استفاده کنید :

Public Shared Sub ChangeConnectionString(ByVal strConn As String)
Dim _config As Configuration = ConfigurationManager.OpenExeConfiguration(Configur ationUserLevel.None)

'the full name of the connection string can be found in the app.config file
' in the "name" attribute of the connection string
_config.ConnectionStrings.ConnectionStrings("نام کانکشن استرینگ").ConnectionString = strConn

'Save to file
_config.Save(ConfigurationSaveMode.Modified)

'force changes to take effect so that we can start using
'this new connection string immediately
ConfigurationManager.RefreshSection(_config.Connec tionStrings.SectionInformation.Name)
My.MySettings.Default.Reload()
End Sub 'ChangeConnectionString
اگر از جواب استفاده کردید و مشکلی داشتید مثلا اینکه نوع Configure را نمیشناخت بفرمایید تا توضیح بدم .:لبخند: