//从*.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>