//从*.config文件获取连接字符串和提供程序
string dp = ConfigurationManager.AppSettings["provider"];
string cnStr = ConfigurationManager.AppSettings["cnStr"];
//得到工厂提供程序
DbProviderFactory df = DbProviderFactories.GetFactory(dp);
编写上述代码时出错,报的错误为“未能加载文件或程序集“MySql.Data, Version=6.6.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d””。发生上述错误的原因是自己新安装的MySql版本为6.7.4.0,而被加载的MySql版本为6.6.5.0。
因此,需要修改配置文件。
方法一:需要修改machine.config文件(C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config)。
修改<DbProviderFactories></ DbProviderFactories>中的内容,加入<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient.New" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.7.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
方法二:需要修改本程序的App.config文件
例如修改结果如下:
<?xml version="1.0"?>
<configuration>
<system.data>
<DbProviderFactories>
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient.New" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.7.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
<appSettings>
<!--哪个提供程序-->
<add key="provider" value="MySql.Data.MySqlClient.New"/>
<!--哪个连接字符串-->
<add key="cnStr" value="server=localhost;User Id=root;Persist Security Info=True;database=autolot"/>
</appSettings>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>