تغییر ConnectionString در زمان اجرا

سه شنبه 3 تیر 1393

تغییر رشته اتصال بانک اطلاعاتی در زمان اجرا در این مقاله قصد داریم رشته اتصال بانک اطلاعاتی برنامه را در لحظه اجرای برنامه و بنا با شرایط تغییر دهیم

تغییر ConnectionString در زمان اجرا

سلام دوستان

در این مقاله نحوه تغییر رشته اتصال بانک اطلاعاتی را در بررسی خواهیم کرد

ابتدا روی نام پروژه کلیک راست کرده و Add -->NewItem-->Application Configuration File را انتخاب کنید

در این فایل Section زیر را اضافه کنید

  <connectionStrings>
    <add name="con" providerName="System.Data.sqlclient" connectionString="" />
  </connectionStrings>

یک کانکشن با رشته اتصال خالی

سپس روی References کلیک راست کرده و کتابخانه System.Configuration را اضافه کنید

متد زیر عملیات تغییر رشته اتصال در Config را انجام میدهد

        private void CheckingSource(string constr)
        {
            var config = ConfigurationManager.OpenExeConfiguration(Application.StartupPath + @"\ChangeConnectionStringRunTime_Csharp.exe");
            config.ConnectionStrings.ConnectionStrings["con"].ConnectionString = constr; //CONCATINATE YOUR FIELDS TOGETHER HERE
            config.Save(ConfigurationSaveMode.Modified, true);
            ConfigurationManager.RefreshSection("connectionStrings");
        }

 

فقط دقت داشته باشید که رشته اتصال در فایل خروجی موجود در پوشه Bin را تغییر میدهد

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

       string Connection = "";
            if (rbSql.Checked)
            {
                Connection = string.Format("Data Source={0};Initial Catalog={1};User ID={2};Password={3}",txtServer.Text,txtDbName.Text,txtUserName.Text,txtPass.Text);
               
            }
            else
            {
                Connection = string.Format("Data Source={0};Initial Catalog={1};Integrated Security=True", txtServer.Text, txtDbName.Text);
            }

            CheckingSource(Connection);

 

خروجی :

 <connectionStrings>
    <add name="con" connectionString="Data Source=localhost;Initial Catalog=Barnamenevisan;User ID=sa;Password=123"
      providerName="System.Data.sqlclient" />
  </connectionStrings>

 

نمونه هم ضمیمه کردم

موفق باشید

ایمان مدائنی

نویسنده 1299 مقاله در برنامه نویسان
  • C#.net
  • 7k بازدید
  • 24 تشکر

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید