如何在ASP.NET的asp.net c#应用程序中使用microsoft企业库

时间:2016-02-15 13:36:39

标签: c# mysql asp.net enterprise-library

我在ASP.NET c#application中使用Database MySQL。当我使用简单的步骤连接MySQL数据库并创建ADO.NET连接时工作正常。但我想在我的应用程序中使用Microsoft Enterprise Library。我在下面添加了参考文献

  1. Microsoft.Practices.EnterpriseLibrary.Common
  2. Microsoft.Practices.EnterpriseLibrary.Data
  3. Microsoft.Practices.EnterpriseLibrary.Data.S
  4. MySql.Data
  5. MySql.Web
  6. 以下是我的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>
    

    当我在代码中使用以下代码时

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

    这里抛出以下错误

      

    请求的数据库db1没有在连接字符串中设置有效的ADO.NET提供程序名称。

    给我正确的解决方案,说明为什么会发生这种情况。

1 个答案:

答案 0 :(得分:0)

您的连接字符串名称需要与默认数据库匹配:

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