C# Çalışma Zamanında App.Config ConnectionString Değiştirme, yazım ile C# eğitim setime devam ediyorum. Bu yazımda program çalışırken App.Config ConnectionString Değiştirme anlatmaya çalışacağım.
C# Çalışma Zamanında App.Config ConnectionString Değiştirme
**Önceki derslerimde olduğu gibi yine bir senaryo üzerinden gideceğim. Aslında bu senaryolar benim, bu işleme neden gerek duyduğum konusunda bir örnek vermek amacıyladır.
Diyelim ki aynı anda birden fazla database ile çalışmak zorundasınız. Bir master bilgileri tutan genel bir database bir de modülsel (bu firma da olabilir. Genelde muhasebe programlarında olur.) bilgileri tutan bir yada daha fazla database ‘iniz olduğunu düşünelim. (Bu şekilde olan bir kaç program var elbette.) Bu database ‘lere de modeller kullanarak bağlandınız ya da bir kaç işlem için model kullanmanız gerekti. Bu durumda şöyle bir sorun ortaya çıkıyor.
Ana database olarak master database’i kullanıyorsunuz . Yani ilk olarak bu master database’e bağlanıyorsunuz, ondan sonra diğer database’lere bağlanıyorsunuz. O zaman model oluşturduğunuzda bu modellerin master database’e bağlanmasını istemeyeceksiniz değil mi? Belki de 3 alt database’iniz olacak ve bu modelinizin de bu 3 database’deki aynı tabloları kullanmak zorunda kalacak. O zaman işler biraz karışacak.
İşte böyle bir durumda bu işlem bize gerekli oluyor. Diğer bir senaryo ise şöyle olabilir. (Yine çoklu database var.)
Model kullanıyorsunuz. Bir sql class’ınız var ve o class üzerinden sql işlemlerini yapıyorsunuz. Ama bir noktada model kullanmak zorundasınız. (Örneğin DevExpress Scheluder Control nesnesi.)
Lafı uzattım biliyorum ama bunları anlatmak zorundayım. Beni takip edenler sadece kodları verip geçme gibi bir huyum olmadığını bilirler. :)
O zaman şimdi kodlarımızı verelim.
App.Config ConnectionString Değiştirme
İlk olarak aşağıdaki namespace’leri ekliyoruz.
using System.Data.Common; using System.Data.SqlClient;
İlk olarak master database’e bağlanan connectionstring cümlemizi alıyoruz ve DbConnecitonStringBuilder nesnesine atıyoruz.
DbConnectionStringBuilder Master_SQLString = new DbConnectionStringBuilder(); Master_SQLString.ConnectionString = "Mevcut SQL Connection String"
Şimdi bir SqlConnectionStringBuilder nesnesi tanımlıyoruz.
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
Şimdi elimizde iki farklı ConnectionStringBuilder nesnemiz oldu. İlk verilen ConnectionStringBuilder master database’e bağlanan ConnectionString cümlesi olacak. Master database’e bağlanan ConnectionString cümlesinden bize gerekli olan bilgileri alacağız. Bu bilgiler, Server, Kullanıcı Adı ve Şifresi olacak. Çünkü database’lerimiz aynı serverda… Değişecek olan bilgiler ise Database adı olacak.
Şimdi ilk ConnectionString cümlemizden bize gerekli olan bilgileri alıyoruz.
builder["SERVER"] = Master_SQLString["server"] as string; // Server = Mustafa\SQL2017; builder["Database"] = "Alt_Database_Adı"; builder["User ID"] = Master_SQLString["User ID"] as string; //User ID = sa; builder["Password"] = Master_SQLString["Password"] as string; // Password = 123123123; builder["pooling"] = true;
Bize lazım olan bilgileri aldık ve bu bilgiler ile yeni bir sql connection string cümlesi oluşturduk. Şimdi sırada en önemli şey var. App.Config dosyası içinde yer alan sql connection string cümlesini değiştirmek.
Properties.Settings.Default["Alt_Database_ConnectionString"] = builder.ConnectionString;
İşlemlerimiz bu kadar.
C# Çalışma Zamanında App.Config ConnectionString Değiştirme yazım da bu kadar arkadaşlar. Sormak istediğiniz soruları yorum kısmında sorabilirsiniz. Yada gmail adresime mail atabilirsiniz.
Bu dersim Github projemde yer almamaktadır.
C Sharp Eğitim Seti eğitimi sayfasına gitmek için tıklayınız.
Derslerime özel olarak hazırladığım Github Projeme buradan ulaşabilirsiniz…
Diğer derslerimizde buluşmak dileğiyle. Takipte ve sağlıcakla kalın.