سلام
این رشته اتصال شما از نوع EntityClient است
دقت کنید، نوع EntityClient یک تودرتویی دارد
یعنی خود ConnectionString اصلی در جایی در دل بدنه EntityClient-ConnectionString قرار دارد.
پس باید یکبار با یا EntityConnectionStringBuilder ترجمه شود
و تازه بعدش با SqlConnectionStringBuilder ترجمه شود
چیزی شبیه این کدها:
public static string GetConnectionStringDataSource(string key)
{
string cs = System.Configuration.ConfigurationManager.ConnectionStrings[key].ConnectionString;
var cb1 = new System.Data.EntityClient.EntityConnectionStringBuilder(cs);
var cb2 = new System.Data.SqlClient.SqlConnectionStringBuilder(cb1.ProviderConnectionString);
return cb2.DataSource;
}
public static void SetConnectionStringDataSource(string key, string dataSource)
{
string cs = System.Configuration.ConfigurationManager.ConnectionStrings[key].ConnectionString;
var cb1 = new System.Data.EntityClient.EntityConnectionStringBuilder(cs);
var cb2 = new System.Data.SqlClient.SqlConnectionStringBuilder(cb1.ProviderConnectionString);
cb2.DataSource = dataSource;
cb1.ProviderConnectionString = cb2.ConnectionString;
var config = System.Configuration.ConfigurationManager.OpenExeConfiguration(System.Configuration.ConfigurationUserLevel.None);
config.ConnectionStrings.ConnectionStrings[key].ConnectionString = cb1.ConnectionString;
config.Save(System.Configuration.ConfigurationSaveMode.Modified);
System.Configuration.ConfigurationManager.RefreshSection("connectionStrings");
}
دقت کنید که همچنان IP و Port به هم چسبیده ارسال و دریافت میشوند.
مانند 192.168.1.1,1234
البته پورت 1433 برای SqlServer پیشفرض است و نیازی به بیانش نیست.
و
اگر اصل کد را متوجه شوید که چه میکنید و چطور عمل میکند
راحت میتوانید با دستوراتی شبیه اینها بازی کنید تا به مقصود تان برسید.
موفق باشید.