如何解决如何在不实际安装连接器的情况下通过C#使用mysql连接器连接mysql
|| 我们有一个基于点网2.0的C#产品,它使用MysqL作为数据存储。当我们在XP / Win 7计算机上安装MysqL连接器6.3.6时,我们能够从C#代码连接到数据库而没有任何问题。但是,当MysqL连接器实际上未安装在计算机上,但与可执行文件位于同一目录中时,连接到MysqL数据库时遇到问题。我们不想在要运行该产品的每台计算机上安装连接器。我们希望在我们的代码中使用任何第三方dll(例如logger)时直接使用connectory dll。 即使我们将MysqL.data.dll复制到安装exe的相同目录中,它也会生成但不会连接到数据库。 给出的错误是 找不到请求的.Net Framework数据提供程序。它可能没有安装 块引用 技术信息: 的MysqL 5.0 C# 点网框架2.0 MysqL Connector 6.3.6(sql连接器的6.0.3版出现相同的问题) Win XP / Win 7 当我们使用ASP.Net时,我们可以在web.config中指定下面给出的标签,并且可以通过将dll放入bin目录来直接连接到MysqL数据库。<system.data>
<DbProviderFactories>
<add name=\"MysqL Data Provider\" invariant=\"MysqL.Data.MysqLClient\" description=\".Net Framework Data Provider for MysqL\" type=\"MysqL.Data.MysqLClient.MysqLClientFactory,MysqL.Data,Version=5.0.6.0,Culture=neutral,PublicKeyToken=c5687fc88969c44d\" />
</DbProviderFactories>
</system.data>
为什么我们不能在C#中为桌面环境中的Client Server应用程序做同样的事情。
解决方法
尝试这样的事情(我没有检查任何可能的版本/配置,但是它目前在我的Vista x64上适用于MySql的5.5 ...和.net连接器6.4.3.0-使用来自的v4的mysql.data.dll。网络/单下载)。
确保下面引用的mysql.data.dll程序集在当前目录中。
using(var dt = new DataTable()){
dt.Columns.Add(\“ Name \”);
dt.Columns.Add(\“描述\”);
dt.Columns.Add(\“ InvariantName \”);
dt.Columns.Add(\“ AssemblyQualifiedName \”);
dt.Rows.Add(\“ Mysql something \”,
\“ mysql more \”,
\“ mysqlClient \”,
\“ MySql.Data.MySqlClient.MySqlClientFactory,MySql.Data,版本= 6.4.3.0,区域性=中性,PublicKeyToken = c5687fc88969c44d \”);
var f = DbProviderFactories.GetFactory(dt.Rows [0]);
using(var conn = f.CreateConnection()){
conn.ConnectionString = \“您的字符串在这里\”;
conn.Open();
//,然后在这里工作。
Console.WriteLine(conn);
}
}
, 该页面没有详细介绍.NET Framework依赖关系,但是我怀疑Mysql连接器可能依赖于更高版本的.NET Framework。
换句话说,您的应用程序使用Framework 2,但是Mysql连接器使用哪个版本?
, 此项:
<system.data>
<DbProviderFactories>
<add name=\"MySQL Data Provider\" invariant=\"MySql.Data.MySqlClient\" description=\".Net Framework Data Provider for MySQL\" type=\"MySql.Data.MySqlClient.MySqlClientFactory,MySql.Data,Version=5.0.6.0,Culture=neutral,PublicKeyToken=c5687fc88969c44d\" />
</DbProviderFactories>
</system.data>
...需要写入到您的machine.config中。
我相信默认路径应类似于:
C:\\ WINDOWS \\ Microsoft.NET \\ Framework \\ v2.0.50727 \\ CONFIG
更新资料
您应该能够将MySQL .Net / Connector安装程序作为安装包的一部分包含在内。出于与web.config中要求信息相同的原因,需要machine.config中的条目。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。