2016-02-15 3 views
0

Je suis l'utilisation de base de données MySQL dans ASP.NET C# application.Quand j'utilise des étapes simples pour connecter la base de données MySQL et créer des connexions ADO.NET fonctionne très bien. Mais je veux utiliser Microsoft Enterprise Library pour mon application.I a ajouté une référence donnée ci-dessousComment utiliser la bibliothèque d'entreprise microsoft dans asp.net application C# pour MySQL

  1. Microsoft.Practices.EnterpriseLibrary.Common
  2. Microsoft.Practices.EnterpriseLibrary.Data
  3. Microsoft.Practices.EnterpriseLibrary.Data .S
  4. MySql.Data
  5. MySql.Web

Voici mon code web.comfig

<system.data> 
    <DbProviderFactories> 
    <remove invariant="MySql.Data.MySqlClient" /> 
    <add name="MySQL Data Provider" 
     invariant="MySql.Data.MySqlClient" 
     description=".Net Framework Data Provider for MySQL" 
     type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.4.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> 
    </DbProviderFactories> 
</system.data> 
<dataConfiguration defaultDatabase="db1"></dataConfiguration> 
<connectionStrings> 
    <add name="constr" connectionString="Server=localhost;Database=db1;user id=test;persistsecurityinfo=True;" providerName="MySql.Data.MySqlClient;"/> 
</connectionStrings> 
<configuration> 
    <configSections> 
    <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" /> 
    </configSections> 

et quand je l'utilise dans le code par-dessous le code

if (_connectionMode == DatabaseConnectionMode.UseConnectionStringName) 
{ 
    _Database = new DatabaseProviderFactory().Create(_dbConnectionString) as Database; 
} 

ici jeter l'erreur ci-dessous

La base de données demandées db1does pas un nom de fournisseur ADO.NET valide défini dans le chaîne de connexion. Donnez-moi la bonne solution avec la raison pour laquelle cela se produit.

Répondre

0

Votre nom de chaîne de connexion doit correspondre à la base de données par défaut:

<dataConfiguration defaultDatabase="db1"></dataConfiguration> 
<connectionStrings> 
    <add name="db1" connectionString="Server=localhost;Database=db1;user id=test;persistsecurityinfo=True;" providerName="MySql.Data.MySqlClient;"/> 
</connectionStrings> 
+0

Votre solution que je MAINTENUE. Et ajoutez également DLL "EntLibContrib.Data.MySql" pour MySQL. Maintenant ** "Une erreur d'activation est survenue lors de la tentative d'obtention de l'instance de type Base de données, clé" ** erreur se produit. – kinjal

+0

Quelle version de connecteur vous utilisez (http://stackoverflow.com/questions/22438041/activation-error-occured-while-trying-toget-instance-of-type-database-key-co) et voyez ceci: http : //stackoverflow.com/questions/4030436/activation-error-occured-while-trying-to-get-instance-of-type-database-key –