PDA

View Full Version : سوال: ایجاد ConnectionString پیش قرض در فایل App.Config ای که چندین ConnectionString دارد



PetekDincos
جمعه 28 مرداد 1390, 15:51 عصر
با سلام
من در فایل App.Config چندین ConnectionString رو اضافه کردم که این ها مربوط به چند تا دیتابیس متفاوته و می خوام موقع ورود به برنامه بسته به انتخاب کاربر که می خواد اطلاعات کدام دیتابیس رو ببینه یکی از ConnectionString های تو App.Config کانکشن پیش فرض برنامه بشه و برنامه با اون کانکشن کار کنه من خودم اومدم این کار رو انجام دادم
در خود فایل App.Config کد زیر را می نویسم


<configuration>
<configSections>
<section name="dataConfiguration" type="System.Configuration.SingleTagSectionHandler"/>
</configSections>
<dataConfiguration defaultDatabase="MyConn01" />
<connectionStrings>
<add name="MyConn01" connectionString="..." providerName="System.Data.EntityClient" />
<add name="MyConn02" connectionString="..." providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>

و در CodeBehind برای اعمال کانکشن پیش فرض از MyConn01 به MyConn02 از کد زیر استفاده می کنم


Hashtable MydataConfig = (Hashtable)ConfigurationManager.GetSection("dataConfiguration");
string MydefaultConn = (string)MydataConfig["MyConn02"];
ConnectionStringSettings defaultConn = (ConnectionStringSettings)ConfigurationManager.Con nectionStrings[MydefaultConn];

که ایراد می ده ممنون می شم راهنمایی کنید با تشکر

mehran_sh_t
جمعه 28 مرداد 1390, 16:05 عصر
سلام
کجا اررور میده؟ اررورش چیه؟

hamed_hossani
شنبه 29 مرداد 1390, 06:07 صبح
salam

http://www.connectionstrings.com/

PetekDincos
یک شنبه 30 مرداد 1390, 21:56 عصر
با سلام
وقتی از دستور بالا برای ایجاد کانکشن پیش فرض استفاده می کنم ایراد زیر را در همان ابتدا می دهد
Configuration system failed to initialize
ممنون می شم راهنمایی کنید با تشکر

PetekDincos
یک شنبه 30 مرداد 1390, 23:20 عصر
با سلام
مشکلم حل شد با تشکر

m.bibjan
پنج شنبه 03 فروردین 1391, 01:17 صبح
سلام ببخشید حداقل راه حل کردنش رو هم میذاشتین تا جستجوی افرادی مثل من که همچین مشکلی دارن به یه نتیجه ای برسه تا تاپیک زده نشه.ممنون
جوابش رو کسی بلده ؟
چجوری حل میشه این مشکل؟
ممنون

m.bibjan
پنج شنبه 03 فروردین 1391, 10:43 صبح
سلام کسی نیست این مشکل رو حل کنه؟

m.bibjan
پنج شنبه 03 فروردین 1391, 23:19 عصر
سلام دوستان کمک راهنمایی بفرمایند از دیشب تا حالا هر جا رو که تونستم رفتم ولی نشد
کسی نسیت جواب بده؟برنامه نویسان کجای مجلس اند؟

PetekDincos
جمعه 04 فروردین 1391, 11:44 صبح
با سلام
من به اون صورت در فایل App.Config نتونستم انجام بدم به خاطر همین اومدم در خود Codebehind کانکشن رو درست کردم و استفاده می کنم برای درست کردن EntityConnection از متد زیر استفاده کن و در قسمت متادیتا نام خودت رو قرار بده


private string EntityConnection(string DBName)
{
string serverName = "./";
SqlConnectionStringBuilder sqlBuilder = new SqlConnectionStringBuilder();
sqlBuilder.DataSource = serverName;
sqlBuilder.InitialCatalog = DBName;
sqlBuilder.IntegratedSecurity = true;
// Build the SqlConnection connection string.
string providerString = sqlBuilder.ToString();
App.ConnectionString = providerString;
// Initialize the EntityConnectionStringBuilder.
EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder();
//Set the provider name.
entityBuilder.Provider = "System.Data.SqlClient";

// Set the provider-specific connection string.
entityBuilder.ProviderConnectionString = providerString;

// Set the Metadata location.
entityBuilder.Metadata = @"res://*/YourName.csdl|res://*/YourName.ssdl|res://*YourName.msl";
return entityBuilder.ToString();
}

و می تونی یه EntityConnection از این متد بگیری و استفاده کنی با تشکر

m.bibjan
جمعه 04 فروردین 1391, 12:36 عصر
سلام کسی نیست این مشکل رو از طریق app.config حل کرده باشه ؟ کسی نیست ؟

spicirmkh
چهارشنبه 23 اسفند 1391, 08:58 صبح
سلام من کانکشن استینگ ساختم اما چگونه جایگزین این دستور کنم


public UserSpicEntities() : base("name=UserSpicEntities", "UserSpicEntities")
{
this.ContextOptions.LazyLoadingEnabled = true;
OnContextCreated();
}




با سلام
من به اون صورت در فایل App.Config نتونستم انجام بدم به خاطر همین اومدم در خود Codebehind کانکشن رو درست کردم و استفاده می کنم برای درست کردن EntityConnection از متد زیر استفاده کن و در قسمت متادیتا نام خودت رو قرار بده


private string EntityConnection(string DBName)
{
string serverName = "./";
SqlConnectionStringBuilder sqlBuilder = new SqlConnectionStringBuilder();
sqlBuilder.DataSource = serverName;
sqlBuilder.InitialCatalog = DBName;
sqlBuilder.IntegratedSecurity = true;
// Build the SqlConnection connection string.
string providerString = sqlBuilder.ToString();
App.ConnectionString = providerString;
// Initialize the EntityConnectionStringBuilder.
EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder();
//Set the provider name.
entityBuilder.Provider = "System.Data.SqlClient";

// Set the provider-specific connection string.
entityBuilder.ProviderConnectionString = providerString;

// Set the Metadata location.
entityBuilder.Metadata = @"res://*/YourName.csdl|res://*/YourName.ssdl|res://*YourName.msl";
return entityBuilder.ToString();
}

و می تونی یه EntityConnection از این متد بگیری و استفاده کنی با تشکر

PetekDincos
چهارشنبه 23 اسفند 1391, 09:29 صبح
سلام من کانکشن استینگ ساختم اما چگونه جایگزین این دستور کنم


public UserSpicEntities() : base("name=UserSpicEntities", "UserSpicEntities")
{
this.ContextOptions.LazyLoadingEnabled = true;
OnContextCreated();
}


با سلام
شما وقتی می خواهید یه آبجکت از Context اتون ایجاد کنید سازندش دو تا Override داره که تو دومی می تونید Connectionstring رو تو سازنده قرار بدید .
یعنی به این صورت میشه

UserSpicEntities db_Context=new UserSpicEntities (MyConnectionstring);

با تشکر