پیکربندی Connection String در App.Config با سی شارپ

پیکربندی Connection String

در این مقاله با هم خواهیم دید که چگونه میتوانیم Connection String در لحظه اجرا را برای یک برنامه ویندوز با استفاده از سی شارپ ، پیکربندی کنیم. این کار به کاربر کمک میکند تا Connection اش را در طول اجرا تغییر دهد. همچنین اگر تعداد زیادی سرور و دیتابیس وجود داشته باشد ، تعداد Connection String ها بالا خواهد بود و کاربر نمیتواند همه چیز را در فایل App.Config اضافه کند. این برای کاربرانی که ممکن است از سرور و دیتابیس تصادفی در طول اجرا استفاده کنند مفید است و نیازی به ایجاد یک Connection Stringدیگر نخواهند داشت.

پیکربندی Connection String

۱ ویژوال استودیو را باز کنید و یک برنامه ویندوز جدید ایجاد کنید.

پیکربندی Connection String

۲ فایل App.Config را به پروژه اضافه کنید.

پیکربندی Connection String

۳ کد زیر را در قسمت Connection String اضافه کنید.

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

پیکربندی Connection String

۴ حال دو عدد TextBox ، دو عدد Label و یک Button به فرم اضافه کنید. همانند تصویر زیر :

پیکربندی Connection String

۵ یک dropdown همانند زیر برای نمایش یک ستون از جدول اضافه کنید.

پیکربندی Connection String

۶ فضای نام زیر را نیز اضافه کنید :

using System.Data.SqlClient;

قطعه کد زیر مربوط به رویداد کلیک Button میباشد :

try
{
    //Constructing connection string from the inputs
    StringBuilder Con = new StringBuilder("Data Source=");
    Con.Append(txtServer.Text);
    Con.Append(";Initial Catalog=");
    Con.Append(txtDatabase.Text);
    Con.Append(";Integrated Security=SSPI;");
    string strCon = Con.ToString();
    updateConfigFile(strCon);
    //Create new sql connection
    SqlConnection Db = new SqlConnection();
    //to refresh connection string each time else it will use previous connection string
    ConfigurationManager.RefreshSection("connectionStrings");
    Db.ConnectionString = ConfigurationManager.ConnectionStrings["con"].ToString();
    //To check new connection string is working or not
    SqlDataAdapter da = new SqlDataAdapter("select * from employee",Db);
Hide   Copy Code
 SqlDataAdapter da = new SqlDataAdapter("select * from employee");//incase earlier Visualstudios
    DataTable dt = new DataTable();
    da.Fill(dt);
    cmbTestValue.DataSource=dt;
    cmbTestValue.DisplayMember="Emp_Id";
}
catch (Exception E)
{
    MessageBox.Show(ConfigurationManager.ConnectionStrings["con"].ToString() + 
        ".This is invalid connection", "Incorrect server/Database");
}

پیکربندی Connection String

۷ فضای نام های زیر را اضافه کنید :

using System.Xml;
using System.Configuration;

تابعی جدید با نام updateConfigFile که در زیر آمده است را ایجاد کنید :

public void updateConfigFile(string con){
//updating config file
    XmlDocument XmlDoc = new XmlDocument();
//Loading the Config file
    XmlDoc.Load(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
foreach (XmlElement xElement in XmlDoc.DocumentElement)
    {
if (xElement.Name == "connectionStrings")
       {
//setting the coonection string
              xElement.FirstChild.Attributes[2].Value = con;
       }
    }
//writing the connection string in config file
    XmlDoc.Save(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
}

پیکربندی Connection String

۸ حال برنامه را Build کنید و نام سرور و دیتابیس را وارد کنید. Dropdown را نیز چک کنید که درست کار کند. نام دیتابیس تغییر تغییر دهید و بر روی Connect Again کلیک کنید تا با دیتابیس جدید اتصال برقرار شود.

پیکربندی Connection Stringپیکربندی Connection String

امیدوارم از آن لذت برده باشید !
موفق باشید !

داریوش فرخی

داریوش فرخی هستم از سال 92 شروع به یادگیری برنامه نویسی و از سال 93 در بخش برنامه نویسی و تولید محتوای سایت mspsoft.com مشغول هستم. فعالیتم نیز بیشتر در زمینه های برنامه نویسی با سی شارپ و asp.net بوده است. اوقات فراغتم را هم غالبا با تماشای فیلم یا بازی های کامپیوتری پر میکنم .

نوشته‌های مرتبط

دیدگاه‌ها

*
*

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

    احسان پاسخ

    با سلام
    ممنونم از آموزش خوبتون
    فقط یه مشکل دارم که من با Entity اتصال به دیتابیسمو برقرار کردم و میخوام که کانکشن برناممو بتونم تغیر بدم
    یعنی اینکه بتونم نام دیتابیس و نام سرور و نام کاربر یو رمز عبور دیتابیس رو از کاربر دریافت کنه و سپس به دیتابیس وصل بشه
    ممنون میشم اگه کمکم کنید
    آدرس ایمیل بنده Ehsannozari@gmail.com
    در صور ت ممکن قبول زحمت کنید برام ایمیل کنید.

      حمید پاسخ

      سلام من هم همین مشکل رو دارم sabanetaria@gmail.com

    منصور پاسخ

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

جشنواره فروش ویژه عید تا عید با تخفیف های باورنکردنی در ام اس پی سافتبزن بریم
+