我在ASP.NET c#application中使用Database MySQL。当我使用简单的步骤连接MySQL数据库并创建ADO.NET连接时工作正常。但我想在我的应用程序中使用Microsoft Enterprise Library。我在下面添加了参考文献
以下是我的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提供程序名称。
给我正确的解决方案,说明为什么会发生这种情况。
答案 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>