PDA

View Full Version : تغییر دادن ConnectionString با برنامه نویسی(فوری)



nokhod
چهارشنبه 06 تیر 1386, 10:51 صبح
سلام. خسته نباشید.

من دارم یه سایت طراحی میکنم که هم فارسیه هم انگلیسی. یه مشکلی دارم:
من در صفحاتم از SqlDataSource استفاده کردم و ConnectionString رو از تو Web.config و EnglishConnectionString می خونه. حالا می خوام DataBase هم هم فارسی و هم انگلیسی باشه.(یعنی دو تا DataBase داشته باشیم یکی ماله فارسی و دیگری ماله انگلیسی) حالا اگه کاربر زبان فارسی رو انتخاب کرد اطلاعاتی که در DataBase فارسی هست نمایش داده بشه در غیر این صورت متناظرشون تو DataBase انگلیسی. حالا لازمه که ConnectionString همه SqlDataSourceهام عوض بشه. به نظر من دو راه برای این کار وجود داره:
1-هر دو ConnectionString رو توی Web.config ذخیره کنیم و بگیم


if (Session["Language"] == "Farsi")
SqlDataSource1.ConnectionString = ConfigurationManager.ConnectionString["FarsiConnectionString"];
else
SqlDataSource1.ConnectionString = ConfigurationManager.ConnectionString["EnglishConnectionString"];

که باید این کد رو برای همه ی DataSource های همه صفحات بنویسیم که کاری بس طاقت فرساست!!!!

2- در صفحه ی تغییر زبان همون EnglishConnecionString روتغییر بدیم تا همه DataSource ها بتونن به کار خودشون مشابه قبل ادامه بدن. برای این کار:


ConfigurationManager.ConnectionStrings["EnglishConnectionString"].ConnectionString = FarsiConnectionString;

اما این کد Exception میده:


The Configuration is read only.

اگه میشه این مشکل رو حل کرد لطفا کمکم کنین و در غیر این صورت اگه راه دیگه ای به ذهنتون میرسه لطف کنین و بگین.

خیلی ممنون.

MehranZand
چهارشنبه 06 تیر 1386, 12:15 عصر
دوست عزیز اصلا لازم نیست دو تا دیتا بیس داشته باشی!
یک فیلد بنام lang توی هر table اضافه کن که می تونه مقادیر fa
برای فارسی en برای انگلیسی را داشته باشه. هر بار برای
انتخاب رکوردهای هر زبان کافیه شرط lang رو برای انتخابت بگذاری.